繁体   English   中英

我如何解决keras中的lstm尺寸错误?

[英]how can i solve lstm dimension error in keras?

这是我的代码

model = Sequential()
model.add(LSTM(512,  return_sequences=True))
model.add(Dropout(0.3))

model.add(LSTM(512,  return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(1, return_sequences=True))

我得到这个错误

ValueError: Error when checking target: expected lstm_3 to have 3 dimensions, but got array with shape (62796, 1) 

如果我设置return_sequences=True则输出形状为3D数组

那么,为什么会发生此错误?

keras LSTM层的输入和输出应为3维,默认情况下为以下形状:

(批量大小,时间步长,功能)。

似乎您从错误消息中仅使用了两个维度(62796,1)。

以下是一个使用合成数据的最小工作示例,该示例说明了LSTM网络所需的输入和输出形状。

from keras.models import Sequential
from keras.layers import LSTM, Dropout
import numpy as np

numb_outputs = 1

batch_size = 10
timesteps = 5
features = 2

x_single_batch = np.random.rand(batch_size, timesteps, features)
y_single_batch = np.random.rand(batch_size, timesteps, numb_outputs)

model = Sequential()
model.add(LSTM(512,  return_sequences=True))
model.add(Dropout(0.3))

model.add(LSTM(512,  return_sequences=True))
model.add(Dropout(0.3))
model.add(LSTM(numb_outputs, return_sequences=True))

model.compile(optimizer='adam',loss='mse')
model.fit(x= x_single_batch, y=y_single_batch)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM