[英]ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: (None, 1)
[英]ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: (57, 1)
我正在使用 LSTM 模型并收到此错误。
ValueError: 层序的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。 收到的完整形状:(57, 1)
这是我的代码:
model = tf.keras.Sequential()
model.add(tf.keras.layers.LSTM(64, input_shape = (700, 57), return_sequences=True))
model.add(tf.keras.layers.LSTM(64))
model.add(tf.keras.layers.Dense(64, activation='relu'))
model.add(tf.keras.layers.Dense(10, activation='softmax'))
optimizer = tf.keras.optimizers.Adam(lr=0.001)
model.compile(optimizer=optimizer,
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.summary()
history = model.fit(train_data, batch_size=32, epochs=60, verbose=2, validation_data=valid_data)
model.save("LSTM.h5")
我的训练数据的形状是:
input_shape = (x_train.shape, y_train.shape)
print(input_shape)
((700, 57), (700,))
训练数据集包含 700 行(样本)和 57 列(特征),测试数据集包含 700 个样本的标签。
LSTM 需要三个维度的输入,即(batch, timestep, features)
。 您的每个样本都是长度为 1 的序列吗? 在这种情况下,您需要设置input_shape = (1,57)
并将数据重塑为x_train = x_train[:, None, :]
和x_validation = x_validation[:, None, :]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.