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

使用Food101数据集报错:请求的split‘validation’不存在

解决Food101数据集TFDS加载时Split不存在的问题

问题根源

TFDS官方定义的Food101数据集split为train和validation,但你本地下载的数据集文件夹是train和test,两者的split命名不匹配,导致TFDS无法识别你指定的split;同时你本地数据集的meta信息里可能没有注册test这个split,所以改split为test也会报错。参考代码能正常运行是因为它使用的是TFDS自动下载的标准结构数据集,split命名完全符合官方定义。

解决方案

方案1:重新下载标准数据集(最省心)

  • 删除本地已有的Food101数据集文件夹(默认路径为~/tensorflow_datasets/food101/,根据你的实际存储路径调整)
  • 重新运行你原本的代码,TFDS会自动下载包含train和validation split的标准数据集,无需额外修改

方案2:修改本地数据集适配TFDS规范

  • 找到本地Food101的存储目录,将test相关的文件夹、文件重命名为validation
  • 打开数据集的meta配置文件(如dataset_info.json),将其中所有提及test的字段替换为validation,确保split名称和TFDS的预期一致

方案3:手动加载本地数据集(无需修改文件)

如果不想改动本地文件,可以绕过TFDS的split检查,直接用tf.data手动加载图片和标签:

import tensorflow as tf
import os

# 定义本地数据集路径
train_dir = "/path/to/your/local/food101/train"
test_dir = "/path/to/your/local/food101/test"

# 加载训练集
train_data = tf.keras.utils.image_dataset_from_directory(
    train_dir,
    image_size=(224, 224),  # 根据你的模型需求调整尺寸
    batch_size=32,
    label_mode="categorical"
)

# 加载测试集
test_data = tf.keras.utils.image_dataset_from_directory(
    test_dir,
    image_size=(224, 224),
    batch_size=32,
    label_mode="categorical"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:22:49