我想實現一個多對一的模型,其中輸入是大小爲d的單詞向量。我需要在LSTM結束時輸出尺寸爲d的矢量。在keras中多對一的實現
在這種question,提到使用(對於多對一模式)
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim)))
我仍然懷疑如何在keras指定輸入,更重要的輸出尺寸模型
我想實現一個多對一的模型,其中輸入是大小爲d的單詞向量。我需要在LSTM結束時輸出尺寸爲d的矢量。在keras中多對一的實現
在這種question,提到使用(對於多對一模式)
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim)))
我仍然懷疑如何在keras指定輸入,更重要的輸出尺寸模型
您提供的代碼實際上是one-to-many
方案 - 但對於大小爲1的輸出。如果要輸出尺寸爲d
的輸出,則需要嘗試下面的代碼:
model = Sequential()
model.add(LSTM(d, input_shape=(len_seq, d)))
而且 - 與詞矢量我強烈建議你使用Embedding
層是專爲您的使用案例。然後用它作爲你的LSTM
的輸入。
輸入是形狀的三維張量(batch_size時,時間步長,input_dims)
因此,這將是這個樣子:
batch_input = np.empty([batch_size] + [timesteps] + [d])
將有一個輸出(最後一個序列),因爲「return_state =默認情況下在keras中爲False。
輸出形狀將是:
(batch_size, 1)
因爲你只在你LSTM有一個單位。如果你想用「d」維度的輸出,那麼你必須LSTM改變
LSTM(d, input_shape=(timesteps, data_dim))
我覺得我給的代碼是有效的許多到一個情況,在每個時間步輸入是一個整數,LSTM輸出一個並且只有一個輸出結束。所以不應該是多對一的代碼? – MysticForce
@MysticForce你有沒有想出一個解決方案?在同樣的問題上掙扎。 –