多对多 lstm 实现 - 值错误
Posted
技术标签:
【中文标题】多对多 lstm 实现 - 值错误【英文标题】:Many to many lstm implementation - value error 【发布时间】:2021-12-25 00:40:23 【问题描述】:我正在尝试为以下输入和输出训练 LSTM
Input output
(10,20) (3.43766, -0.0258654, -9.33203)
(20,30) (3.39076, 0.0415078, -9.29935)
(30,40) (3.49587, -0.0158063, -9.47972)
这是一个多对多的用例。
我的方法
X = ((10,20),
(10,20))
X=(np.array(X))
Y = (
(3.43766, -0.0258654, -9.33203),
(3.39076, 0.0415078, -9.29935))
Y=(np.array(Y))
from tensorflow.keras.layers import Dropout
from tensorflow.keras.layers import TimeDistributed
from tensorflow.keras.layers import Activation
model = Sequential()
model.add(LSTM(input_shape=(2,2),return_sequences=True, units=50))
model.add(Dropout(0.2))
model.add(LSTM(250,return_sequences=True))
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(3)))
model.add(Activation("linear"))
model.compile(loss="mse", optimizer="rmsprop")
model.fit(X, Y, epochs=10000, batch_size=1, verbose=2)
我收到以下错误
ValueError: Input 0 of layer sequential_2 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: (1, 2)
谁能帮帮我
【问题讨论】:
【参考方案1】:我认为(2,1)
应该是正确的输入形状:
model.add(LSTM(input_shape=(2,1), return_sequences=True, units=50))
【讨论】:
以上是关于多对多 lstm 实现 - 值错误的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Keras 中定义一对一、一对多、多对一和多对多的 LSTM 神经网络? [复制]
在 TensorFlow 中使用多对多 LSTM 进行视频分类