Я новичок в NLP и Keras и все еще учусь.
Я пытался следовать этому руководству: https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html и добавил слой для встраивания.Я использую набор данных fra2eng.
Однако я не уверен, что моя модель вывода и генерация выходного кода верны.По сути, мой входной сигнал декодера представляет собой массив индекса (единственного числа), поступающего в мою модель логического вывода.
Я не совсем уверен, правильно ли это.Дайте мне знать, если нужна дополнительная фоновая информация или код.
input_seq - это массив индексов слов в словаре.
array([36., 64., 57., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0.], dtype=float32)
0 - мой индекс стартового токена, поэтому моя первая цельseq is np.array ([0]) -> не уверен, правильно ли это
def decode_sequence(input_seq):
# Encode the input as state vectors.
states_value = encoder_model.predict(input_seq)
target_seq = np.array([0])
stop_condition = False
decoded_sentence = ''
while not stop_condition:
output_tokens, h, c = decoder_model.predict([target_seq] + states_value)
sampled_token_index = np.argmax(output_tokens[0, -1, :])
sampled_char = target_idx2char[sampled_token_index]
decoded_sentence += sampled_char
if (sampled_char == '\n' or len(decoded_sentence) > 20):
stop_condition = True
# Update the target sequence (of length 1).
target_seq = np.array([sampled_token_index])
# Update states
states_value = [h, c]
return decoded_sentence
Вот мой вывод, мне было интересно, если вывод из-за какой-либо ошибки выше.
Input sentence: Go.
Decoded sentence: tréjous?!
-
Input sentence: Run!
Decoded sentence: ï
-
Input sentence: Run!
Decoded sentence: ï
-
Input sentence: Wow!
Decoded sentence: u te les fois.
-
Input sentence: Fire!
Decoded sentence: ïï
-
Input sentence: Help!
Decoded sentence: ez joi de l'argent.