繁体   English   中英

ValueError: 层序的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。 收到的完整形状:(57, 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.

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