0
seq2seqモデルのエンコーダでバックプロパゲーションがどのように機能するかを理解できません。ラベルはありません。したがって、LSTMレイヤーの重みは何らかの形で更新されますが、バックプロパゲーションされたエラーを計算することはできません。seq2seq - エンコーダバックプロパゲーション
l_enc_input = Input(batch_shape=(batch_size, None, embedding_size))
l_enc_lstm = LSTM(encoding_size, return_sequences=False, return_state=True, stateful=True, dropout=0.2)
l_dec_input = Input(batch_shape=(batch_size, None, embedding_size))
l_dec_lstm = LSTM(encoding_size, return_sequences=False, stateful=True, dropout=0.2)
l_dec_dense = Dense(embedding_size, activation="softmax")
t_enc_out = l_enc_lstm(l_enc_input)
state = t_enc_out[1:]
t_dec_out = l_dec_dense(l_dec_lstm(l_dec_input, initial_state=state))
model_train = Model(inputs=[l_enc_input, l_dec_input], outputs=[t_dec_out])
model_train.compile(optimizer="adam", loss="categorical_crossentropy")
コードでは、エンコーダ**の**出力**はデコーダには提供されていません**。エンコーダLSTMの**内部状態**のみがデコーダLSTMの初期状態として設定されます。これが私が混乱している理由、エンコーダの重み付けの更新方法です。 –