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

如何将两个TensorFlow数据集分别作为输入和标签用于模型训练

问题原因

Keras 要求输入为 tf.data.Dataset 类型时,单个数据集需要在每步迭代直接返回 (输入张量, 标签张量) 的二元组,不支持将输入数据、标签数据拆分为两个独立的 Dataset 对象分别传入 x 和 y 参数,这是触发报错的核心原因。

解决方法

你只需要将两个独立的数据集打包合并为一个返回样本-标签对的数据集即可,操作步骤如下:

  1. 用 tf.data.Dataset.zip() 方法对齐两个数据集,自动按位置配对输入和标签:
# 对齐输入数据集和标签数据集,每步返回 (输入图像, 标签图像)
train_dataset = tf.data.Dataset.zip((data, labels))

# 可选:添加训练常用优化配置,可根据自身需求调整
train_dataset = train_dataset.shuffle(buffer_size=200).prefetch(tf.data.AUTOTUNE)
  1. 调用训练方法时仅传入合并后的单个数据集即可,不需要额外传 y 参数:
# 注意Keras内置训练方法为fit,若你使用自定义训练方法逻辑也通用
model.fit(train_dataset, epochs=5)
注意事项
  • 要确保两个目录下的样本排序后一一对应:image_dataset_from_directory 默认按文件名升序加载样本,只要两个目录下的输入、标签对应文件命名顺序一致即可正常配对,若担心顺序错乱可以在加载数据集时添加参数 shuffle=False 固定加载顺序。
  • 该方法适配任意batch_size配置,zip操作会自动对齐批次维度,不需要额外调整。

内容的提问来源于stack exchange,提问作者ion g

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:24:05