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

如何从训练数据中提取验证数据?(TensorFlow代码场景)

分离验证数据集的简单方法

嘿,我来帮你搞定这个验证数据分离的问题!你已经用tf.keras.preprocessing.image_dataset_from_directory加载了训练集,要得到对应的验证集其实只需要再调用一次这个函数,关键是要保证几个核心参数和训练集完全一致,这样才能正确拆分出不重叠的验证数据。

具体实现步骤

首先,你现有的训练集加载代码是这样的:

self.__Dir_Data = tf.keras.preprocessing.image_dataset_from_directory(
    self.__Dir_Path,
    validation_split=0.1,
    subset="training",
    seed=1,
    labels='inferred',
    label_mode='int',
    batch_size=32,
    image_size=(124, 124)
)

要加载对应的验证集,只需要复制这段代码,把subset参数改成"validation",同时确保validation_split、seed、labels、label_mode、batch_size、image_size这些参数和训练集完全相同:

self.__Dir_Val = tf.keras.preprocessing.image_dataset_from_directory(
    self.__Dir_Path,
    validation_split=0.1,
    subset="validation",
    seed=1,  # 必须和训练集的seed一致,才能保证拆分后数据集无重叠
    labels='inferred',
    label_mode='int',
    batch_size=32,
    image_size=(124, 124)
)

这么做的核心原因

  • TensorFlow会根据validation_split=0.1自动把原始数据按9:1的比例拆分,10%作为验证集,90%作为训练集
  • 相同的seed参数能确保两次加载的数据集完全不重叠,避免训练时用到验证数据导致的数据泄露问题
  • 保持其他参数一致,能保证验证集和训练集的预处理逻辑(图像尺寸、标签格式、批次大小)完全匹配,后续模型评估的结果才准确

这样你就得到了独立的训练集self.__Dir_Data和验证集self.__Dir_Val,可以直接用在模型的fit方法里做训练和验证啦!

内容的提问来源于stack exchange,提问作者Damian Andrysiak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:17:53