Добавление предварительно обученного встраивания слова в декодер кодировщика

Я хотел бы добавить предварительно подготовленное вложение слов в мой кодировщик-декодер. Ниже мой код:

# Define an Encoder
encoder_inputs = Input(shape=(None, nEncoderToken))
encoder = LSTM(embedding_dim, return_state=True)
encoder_outputs, state_h, state_c = encoder(encoder_inputs)
encoder_states = [state_h, state_c]

# Define a Decoder
decoder_inputs = Input(shape=(None, nDecoderToken))
decoder_lstm = LSTM(embedding_dim, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
decoder_dense = Dense(nDecoderToken, activation='softmax')
decoder_outputs = decoder_dense(decoder_outputs)

model = Model([encoder_inputs, decoder_inputs], decoder_outputs)

Я пробовал много способов, но я просто не мог получить его.


person Adam L    schedule 28.07.2020    source источник
comment
Мне кажется, это Керас. Я полагаю, вы могли бы просто передать загруженную матрицу вложений параметру embeddings_initializer или weights в слое Embeddings, расположенном непосредственно перед слоем LSTM, вместо входного слоя?   -  person LemurPwned    schedule 28.07.2020
comment
Когда я пытаюсь это сделать, у меня возникают проблемы с размерами. Либо Error when checking input: expected input_0 to have 2 dimensions, but got array with shape (100, 50, 780) Или Input 0 is incompatible with layer lstm_0: expected ndim=3, found ndim=4   -  person Adam L    schedule 28.07.2020
comment
Если я удалю входной слой, то получу ошибку Layer lstm_0 was called with an input that isn't a symbolic tensor. Так что я немного в тупике ~   -  person Adam L    schedule 28.07.2020
comment
Самым простым решением, я думаю, было бы использование последовательной модели (в целом), но если вы хотите придерживаться этого формата, взгляните на ответ здесь stackoverflow.com/questions/48850424/ и конкретный пример, связанный там blog.keras.io/   -  person LemurPwned    schedule 28.07.2020
comment
Вы все еще ищете решение?   -  person Vahid    schedule 16.02.2021