You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将PrefetchDataset传入Keras模型时遇ValueError问题求助

问题求助:TensorFlow模型训练时输入不匹配错误

数据情况与加载方式

训练集(518 MB)、测试集(129MB),使用TensorFlow加载代码如下:

import tensorflow as tf

train_data = tf.data.experimental.make_csv_dataset("flight_2018_train.csv",
                                             batch_size = 10000,
                                             label_name="Cancelled",
                                             num_epochs = 20,
                                             num_parallel_reads=2)
test_data = tf.data.experimental.make_csv_dataset("flight_2018_test.csv",
                                             batch_size = 10000,
                                             label_name="Cancelled",
                                             num_epochs = 20,
                                             num_parallel_reads=2)

加载后的数据集类型为tensorflow.python.data.ops.dataset_ops.PrefetchDataset。

模型定义

创建的Sequential模型代码:

sda_1 = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation="relu", input_shape=(16,)),
    tf.keras.layers.Dense(64, activation="relu"),
    tf.keras.layers.Dense(64, activation="relu"),
    tf.keras.layers.Dense(2, activation = "sigmoid")
])

sda_1.compile(optimizer='adam',
              loss=tf.keras.losses.MeanAbsoluteError(),
              metrics = [tf.keras.metrics.MeanSquaredError()])

训练时的错误信息

执行训练代码:

sda_1.fit(train_data, validation_data = test_data)

出现如下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-78-46f637b35970> in <module>
----> 1 sda_1.fit(train_data)

1 frames
/usr/local/lib/python3.7/dist-packages/keras/engine/training.py in tf__train_function(iterator)
     13                 try:
     14                     do_return = True
---> 15                     retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
     16                 except:
     17                     do_return = False

ValueError: in user code:

    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1160, in train_function  *
        return step_function(self, iterator)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1146, in step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1135, in run_step  **
        outputs = model.train_step(data)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 993, in train_step
        y_pred = self(x, training=True)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 70, in error_handler
        raise e.with_traceback(filtered_tb) from None
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/input_spec.py", line 198, in assert_input_compatibility
        f'Missing data for input "{name}". '

    ValueError: Missing data for input "dense_43_input". You passed a data dictionary with keys ['Month', 'DayofMonth', 'DayOfWeek', 'OriginAirportID', 'DestAirportID', 'DepTime', 'DepDelay', 'DepDel15', 'ArrTime', 'ArrDelay', 'ArrDel15', 'CarrierDelay', 'WeatherDelay', 'NASDelay', 'SecurityDelay', 'LateAircraftDelay']. Expected the following keys: ['dense_43_input']

已按照@Finn Meyer的建议修改过,但仍出现上述输入不匹配的错误,不清楚问题所在,请求帮助。

内容的提问来源于stack exchange,提问作者Shawn Brar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:01:40