使用TensorFlow 2.0加载本地ImageNet2012时触发404下载错误求助
解决tensorflow_datasets加载本地ImageNet 2012仍触发下载的问题
问题原因
tensorflow_datasets(tfds)的download_and_prepare方法默认会尝试校验并从官方源拉取数据集,即便你指定了manual_dir,如果没明确设置重用本地文件的模式,它还是会尝试访问已失效的ImageNet官方下载链接,最终导致404错误。
修复代码
在DownloadConfig中添加download_mode参数,明确告知tfds直接重用本地已有的手动下载文件:
import tensorflow_datasets as tfds import os dataset_dir = '/home/imagenet' # 本地压缩包所在目录 temp_dir = '/home/temp' # 临时解压目录 download_config = tfds.download.DownloadConfig( extract_dir=os.path.join(temp_dir, 'extracted'), manual_dir=dataset_dir, # 关键参数:指定重用本地手动下载的文件,不触发新下载 download_mode=tfds.download.GenerateMode.REUSE_MANUAL_DOWNLOADS ) builder = tfds.builder("imagenet2012") builder.download_and_prepare(download_config=download_config)
额外检查项
- 确认
/home/imagenet目录下的文件名完全匹配:ILSVRC2012_img_train.tar和ILSVRC2012_img_val.tar,tfds对文件名大小写和完整性敏感。 - 如果仍有异常,可清空
temp_dir下的缓存文件后重新运行,避免旧缓存干扰。
内容的提问来源于stack exchange,提问作者QED
相关产品推荐
相关产品推荐

