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

tensorflow_datasets加载cifar10时splits为空报错原因咨询

问题成因

运行路径为docs\vision\image_classification.ipynb的笔记文件中「调整训练配置」代码小节时触发的Trying to access splits['test'] but splits is empty报错,核心是使用tensorflow_datasets加载cifar10数据集时,dataset_info中的splits字段未被正确赋值,常见触发原因有四类:

  • 数据集构建流程中断:tensorflow_datasets(简称tfds)加载公开数据集需要走完原始文件下载、完整性校验、转换为tfrecord格式缓存、写入元信息的全流程,若中途出现网络波动导致cifar10原始压缩包下载损坏、磁盘剩余空间不足、手动终止notebook内核进程,会在本地缓存目录留下半完成的构建产物,此时读取到的dataset_info是初始化的空对象,splits字段自然没有有效内容。
  • 缓存目录权限异常:tfds默认将数据集缓存到用户目录下的tensorflow_datasets文件夹,如果当前运行环境对该路径没有读写权限,数据集构建完成后无法将训练/测试集的划分信息写入dataset_info.json元文件,加载时就会读到空的splits字段。
  • 版本兼容问题:如果之前在当前环境用其他版本的tfds生成过cifar10缓存,后续升级/降级tfds版本后没有清理旧缓存,新旧版本对cifar10的元信息定义不匹配,会导致splits字段解析失败为空;另外部分4.0以前的早期tfds版本本身存在cifar10元信息加载的已知bug,也会触发该问题。
  • 加载参数配置错误:调用tfds.load时如果错误指定data_dir到一个不存在的空目录、或者在数据集首次构建完成前就提前访问dataset_info.splits属性,也会触发该报错。

快速排查方案:直接删除本地tfds缓存目录下损坏的cifar10文件夹(损坏的半完成缓存不会被自动覆盖),确认运行环境对tfds缓存路径有完整读写权限,重新加载时等待数据集下载、转换流程全部跑完再访问splits属性;如果是版本兼容问题,升级到4.5以上的稳定版tfds即可解决。

内容的提问来源于stack exchange,提问作者ram-subhash-d

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:27:17