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

使用TensorFlow Datasets下载CatsVsDogs数据集遇校验和错误求助

解决TensorFlow Datasets Cats Vs. Dogs数据集校验和错误问题

问题原因

你手动修改了cats_vs_dogs数据集的下载URL,但TFDS内置了该数据集的校验和验证机制,新URL下载的文件和预设的校验值不匹配,因此触发NonMatchingChecksumError。

解决方案

方案1:使用TFDS默认配置下载(推荐)

直接移除手动修改URL的代码,TFDS会自动使用官方维护的数据源和校验信息,从根源避免校验不匹配问题:

import tensorflow as tf
import tensorflow_datasets as tfds

# 直接加载数据集,无需手动修改URL
dataset = tfds.load('cats_vs_dogs', split=tfds.Split.TRAIN, data_dir='data/')

方案2:手动指定URL并同步更新校验和

如果因网络限制必须使用自定义URL,需要先获取该URL对应文件的SHA256校验和,再同步修改TFDS的校验配置:

  1. 手动下载文件:访问你指定的URL,将kagglecatsanddogs_5340.zip下载到本地
  2. 计算SHA256校验和:
    • Linux/macOS终端执行:shasum -a 256 kagglecatsanddogs_5340.zip
    • Windows命令行执行:certutil -hashfile kagglecatsanddogs_5340.zip SHA256
  3. 修改TFDS配置:同时更新URL和对应的校验和:
import tensorflow as tf
import tensorflow_datasets as tfds

# 替换为你计算得到的SHA256值
new_checksum = "你的文件SHA256校验和"
# 修改URL和校验和
setattr(tfds.image.cats_vs_dogs, '_URL', "https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_5340.zip")
setattr(tfds.image.cats_vs_dogs, '_CHECKSUM', new_checksum)

# 加载数据集
dataset = tfds.load('cats_vs_dogs', split=tfds.Split.TRAIN, data_dir='data/')

方案3:清理缓存文件

如果之前已经下载了错误的缓存文件,需要先删除data/目录下的相关缓存,再重新下载:

  • 删除data/downloads/下的对应临时文件
  • 删除data/cats_vs_dogs/下的已生成数据集文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:20:36