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

如何使用TensorFlow的flow_from_directory函数正确加载验证集数据

问题根因

验证集加载为0的问题核心来自两处配置错误:

  • 你已经提前将数据集拆分为train和validation两个独立文件夹,无需使用subset参数,该参数仅适用于从单个文件夹自动拆分训练/验证集的场景,且必须搭配ImageDataGenerator的validation_split参数使用,你当前注释了该参数,导致subset配置生效后无法匹配到对应图片
  • 验证集生成器错误使用了带数据增强的train_datagen,验证阶段无需做增强处理,应该使用你预先定义的仅做归一化的test_datagen
修正代码

直接修改create_dataset函数即可,不需要调整其他逻辑:

def create_dataset(train_data_dir, validation_data_dir, img_height, img_width, batch_size):

    train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        shuffle=True,
        class_mode='categorical'
        # 移除subset参数
        )

    validation_generator = test_datagen.flow_from_directory(
        validation_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        shuffle=False, # 验证集无需打乱,保证评估结果稳定
        class_mode='categorical'
        # 移除subset参数
        )

    return train_generator, validation_generator
异常排查项

如果修改后仍出现加载为0的问题,按以下顺序排查:

  • 确认../data/validation目录结构和训练集完全一致,下含6个对应类别的子文件夹,子文件夹内存储验证图片
  • 调用函数前添加print(os.path.exists(validation_data_dir))确认路径拼写正确、可正常访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:54:00