我试图使用Keras训练一个LSTM模型,但我觉得我在这里做错了些什么。
我得到了以下错误:
ValueError: 检查输入时出错:预期lstm_17_input有3个维度,但得到的数组形状为(10000,0,20)
而我的代码看起来像是这样的:
model = Sequential()
model.add(LSTM(256, activation="relu", dropout=0.25, recurrent_dropout=0.25, input_shape=(None, 20, 64)))
model.add(Dense(1, activation="sigmoid"))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(X_train, y_train,
batch_size=batch_size,
epochs=10)
其中X_train
的形状为(10000, 20)
,前几个数据点如下所示
array([[ 0, 0, 0, ..., 40, 40, 9],
[ 0, 0, 0, ..., 33, 20, 51],
[ 0, 0, 0, ..., 54, 54, 50],
...
y_train
的形状为 (10000, )
,表示一个二元(0/1)标签数组。
有人能指出我错在哪里吗?
input_shape=(None, 20, 64)
,但是你的输入只有两个维度(10000, 20)
? - Andre Holznerinput_shape=(None, 20, 1)
并将输入大小调整为(10000,20,1)
。例如,如果您的输入存储在numpy数组中,请使用numpy.resize函数进行调整。 - Andre Holzner