単層LSTMを学習し保存したものを再度呼び出してmodel.fitをしようとすると以下のエラーが起こります。
原因に心あたりがある方はぜひご意見ください。
python3
1ValueError: Layer lstm_2 expects 1 inputs, but it received 3 input tensors. Input received: [<tf.Tensor 'input_2_1:0' shape=(?, ?, 1545) dtype=float32>, <tf.Tensor 'lstm_1_1/while/Exit_2:0' shape=(?, 40) dtype=float32>, <tf.Tensor 'lstm_1_1/while/Exit_3:0' shape=(?, 40) dtype=float32>]
以下がモデルを定義しているコードです
python3
1encoder_inputs = Input(shape=(None, num_encoder_tokens)) 2encoder = LSTM(latent_dim, return_state=True) 3encoder_outputs, state_h, state_c = encoder(encoder_inputs) 4encoder_states = [state_h, state_c] 5decoder_inputs = Input(shape=(None, num_decoder_tokens)) 6decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True) 7decoder_outputs, _, _ = decoder_lstm(decoder_inputs, 8 initial_state=encoder_states) 9decoder_dense = Dense(num_decoder_tokens, activation='softmax') 10decoder_outputs = decoder_dense(decoder_outputs) 11model = Model([encoder_inputs, decoder_inputs], decoder_outputs) 12model.compile(optimizer='rmsprop', loss='categorical_crossentropy') 13model.fit([encoder_input_data, decoder_input_data], decoder_target_data, 14 batch_size=batch_size, 15 epochs=epochs, 16 validation_split=0.2) 17model.save("s2s.h5")
> Layer lstm_2 expects 1 inputs, but it received 3 input tensors
なので、lstm_2 レイヤーの入力が1テンソルを期待しているのに3テンソルになっています。
モデルを読む時にエラーですか?学習を開始してからエラーですか?
前者ならネットワークが異なっています。
後者なら入力方法を確認しましょう。
あなたの回答
tips
プレビュー