本地CPU运行TensorFlow加载cats_vs_dogs数据集报错求助
解决TensorFlow加载cats_vs_dogs数据集时的KeyError问题
问题原因
手动修改tfds.image_classification.cats_vs_dogs._URL指向的微软压缩包,其内部文件结构或完整性与TensorFlow Datasets(tfds)预期不匹配,导致加载时找不到指定文件。
解决步骤
步骤1:清理已损坏的缓存数据
- 找到tfds默认缓存目录:Windows系统下一般为
C:\Users\<你的用户名>\tensorflow_datasets\cats_vs_dogs - 删除该目录下所有文件(包括下载的压缩包和解压内容),避免残留损坏数据干扰重新加载。
步骤2:使用官方默认加载逻辑
移除手动修改_URL的代码,让tfds自动处理数据集的下载、校验和加载,这是最稳妥的方式。修改后的代码如下:
import tensorflow as tf import tensorflow_datasets as tfds import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 直接调用tfds.load,无需手动指定URL datos, metadatos = tfds.load('cats_vs_dogs', as_supervised=True, with_info=True)
步骤3:手动下载并指定数据集路径(若步骤2无效)
- 从官方数据源下载cats_vs_dogs数据集压缩包
- 将压缩包解压到本地任意目录(例如
C:\datasets\cats_vs_dogs) - 调用
tfds.load时通过data_dir参数指定解压后的目录:
import tensorflow as tf import tensorflow_datasets as tfds import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' datos, metadatos = tfds.load( 'cats_vs_dogs', as_supervised=True, with_info=True, data_dir='C:/datasets/cats_vs_dogs' )
步骤4:验证文件结构完整性
解压后检查目录结构,确保存在PetImages/Cat/0.jpg和PetImages/Dog/下的对应文件。若某文件缺失,重新下载压缩包或手动补全缺失文件。
内容的提问来源于stack exchange,提问作者José Timaure
相关产品推荐
相关产品推荐

