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

我有一个具有形状X: (1146165, 19, 22)和 的数据集Y: (1146165,)。这是我的模型代码:


import tensorflow as tf


train_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 model


model = 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)。任何帮助表示赞赏。


SMILET
浏览 129回答 1
1回答

慕尼黑的夜晚无繁华

如果您想让模型适合tf.data.Dataset,则需要确保在 中使用它之前已对其进行批处理model.fit。对于batch_size您的选择,请尝试train_data = train_data.batch(batch_size) model.fit(train_data)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python