我应该在Keras输入类中使用什么形状?

2024-03-28 18:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行一个简单的神经网络,我已经使用以下代码实现了功能的扁平化:

training_dataset = (
tf.data.Dataset.from_tensor_slices(
    (
        tf.cast(ballast_train[features].values, tf.float64),
        tf.cast(ballast_train[target].values, tf.int32)
    )
)

)

for features_tensor, target_tensor in training_dataset:
    print(f'features:{features_tensor} target:{target_tensor}')

features:[0.46029711 0.33290338 0.78302964 0.10295655 0.5890411 ] target:5
features:[0.63530873 0.90712946 0.27781778 0.10295655 0.45988258] target:5
features:[0.68413444 0.81390713 0.8448272  0.65073914 0.46771037] target:2

现在,我尝试运行以下代码,但无法正确获取代码的tf.keras.Input()部分

`inputs = tf.keras.Input(shape=(5,))
x = tf.keras.layers.Dense(100, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(15, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)

model.compile(optimizer='adam',
              loss='mean_squared_error',
              metrics=['accuracy'])

model.fit(training_dataset, epochs=5)`

尝试拟合模型时,会发生以下错误:

ValueError: Error when checking input: expected input_10 to have shape (5,) but got array with shape (1,)

“形状”参数中应该包含什么?这里有我遗漏的东西吗


1条回答
网友
1楼 · 发布于 2024-03-28 18:15:50

This question有一个类似的问题,它可能也适用于您的情况。请尝试以下操作以查看其是否有效:

model.fit(training_dataset.batch(batch_size), epoch=5)

其中需要为batch_size提供一个值

如果这不起作用,我总是倾向于为tf.keras.Model.fit中的xy单独的参数提供特性和示例。您可以尝试修改代码来实现这一点,而不是将它们合并到数据集中

相关问题 更多 >