keras github のサンプルを修正して、組み込み版 seq2seq モデルを構築したいと考えています。 https://github.com/keras-team/keras/blob/master/examples/lstm_seq2seq.py
np.reshape を試しましたが、うまくいきません。
from keras.layers.embeddings import Embedding
embedding = 100
vocab_size = 10000
encoder_inputs = Input(shape=(None,), name="Encoder_input")
encoder = LSTM(latent_dim, return_state=True, name='Encoder_lstm')
Shared_Embedding = Embedding(output_dim=embedding, input_dim=vocab_size, name="Embedding")
word_embedding_context = Shared_Embedding(encoder_inputs)
encoder_outputs, state_h, state_c = encoder(word_embedding_context)
encoder_states = [state_h, state_c]
decoder_inputs = Input(shape=(None,))
decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True, name="Decoder_lstm")
word_embedding_answer = Shared_Embedding(decoder_inputs)
decoder_outputs, _, _ = decoder_lstm(word_embedding_answer, initial_state=encoder_states)
decoder_dense = Dense(vocab_size, activation='softmax', name="Dense_layer")
decoder_outputs = decoder_dense(decoder_outputs)
model = Model([encoder_inputs, decoder_inputs], decoder_outputs)
model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy')
# Note that `decoder_target_data` needs to be one-hot encoded,
# rather than sequences of integers like `decoder_input_data`!
model.fit([encoder_input_data, decoder_input_data], decoder_target_data,
batch_size=batch_size,
epochs=epochs,
validation_split=0.2)
model.save('s2s.h5')
しかし、次のエラーメッセージが表示されました。誰か助けてもらえますか? どうもありがとうございます!
ValueError: 入力チェック時のエラー: Encoder_input は 2 次元であると予想されましたが、形状を持つ配列を取得しました (4999, 53, 3132)