多对多 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 实现 - 值错误的主要内容,如果未能解决你的问题,请参考以下文章

多对多 LSTM PyTorch

我们如何在 Keras 中定义一对一、一对多、多对一和多对多的 LSTM 神经网络? [复制]

在 TensorFlow 中使用多对多 LSTM 进行视频分类

具有不同序列长度的多对多序列预测

为啥我在尝试实现 Hibernate 多对多映射时遇到此错误?

*** 错误设置多对多关系 Spring JPA