为了账号安全,请及时绑定邮箱和手机立即绑定

Keras:ValueError:层equential_1的输入0与层不兼容:预期ndim = 3

Keras:ValueError:层equential_1的输入0与层不兼容:预期ndim = 3

SMILET 2023-10-25 10:41:12
我有一个具有形状X: (1146165, 19, 22)和 的数据集Y: (1146165,)。这是我的模型代码:import tensorflow as tftrain_data = tf.data.Dataset.from_tensor_slices((x_train, y_train))valid_data = tf.data.Dataset.from_tensor_slices((x_valid, y_valid))def create_model(shape=(19, 22)):    tfkl = tf.keras.layers    model = tf.keras.Sequential([        tfkl.LSTM(128, return_sequences=True, input_shape=shape),        tfkl.LSTM(64),        tfkl.Dropout(0.3),        tfkl.Dense(64, activation="linear"),        tfkl.Dense(1)    ])        model.compile(loss='mean_absolute_error', optimizer="adam")    return modelmodel = create_model()model.summary()正如您所看到的input_shapeis (19, 22),这是正确的,但是当我使用时fit出现错误ValueError: Input 0 of layer sequential_15 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [19, 22],我在 Stack 上搜索了一些答案,但大多数是因为输入维度是(a, b)而不是(a,b,c)。任何帮助表示赞赏。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

如果您想让模型适合tf.data.Dataset,则需要确保在 中使用它之前已对其进行批处理model.fit。对于batch_size您的选择,请尝试

train_data = train_data.batch(batch_size)
model.fit(train_data)


查看完整回答
反对 回复 2023-10-25
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信