TensorFlow Model Garden ResNet50 ImageNet2012数据集准备与配置
ImageNet2012数据集准备与ResNet50训练配置操作指引
基于TFDS的数据集准备流程(官方推荐路径)
你已将原始ILSVRC2012两个压缩包存放在/myPath路径下时,按照以下步骤操作即可:
- 无需手动解压原始tar包,提前设置两个环境变量,指定原始包存放路径与TFDS缓存路径:
# 替换为你实际的缓存目录,建议放在磁盘剩余空间大于1TB的分区 export TFDS_DATA_DIR=/data/tfds_cache # 指向你存放两个原始tar包的目录 export IMAGENET2012_IMAGES=/myPath - 启动训练时,命令行的
--data_dir参数直接赋值为$TFDS_DATA_DIR即可,首次运行脚本时会自动完成数据集的解压、格式转换、缓存生成流程,后续重复训练不需要重复执行转换操作 - 不需要额外修改配置文件中的数据集参数,默认配置已经适配TFDS格式的ImageNet数据集
已生成TFRecords数据集的适配流程
你已经按照官方脚本生成了固定结构的TFRecords文件时,按照以下步骤调整配置即可跑通训练:
- 确认你的TFRecords根目录:即同时包含
train、validation两个子文件夹的上层物理路径,这就是你需要传入的DATA_DIR实际值 - 二选一完成配置调整:
- 直接通过命令行参数覆盖配置,不需要修改本地配置文件:
在原有训练命令的--params_override参数中追加数据源类型指定,将--data_dir设置为你的TFRecords根目录即可:python3 classifier_trainer.py \ --mode=train_and_eval \ --model_type=resnet \ --dataset=imagenet \ --model_dir=$MODEL_DIR \ --data_dir=/your/tfrecords_root_path \ --config_file=configs/examples/resnet/imagenet/gpu.yaml \ --params_override='runtime.num_gpus=$NUM_GPUS task.train_data.use_tfds=false task.validation_data.use_tfds=false' - 直接修改
configs/examples/resnet/imagenet/gpu.yaml配置文件,找到task配置段,修改以下固定参数:task: train_data: # 直接匹配所有训练分片文件 input_path: "/your/tfrecords_root_path/train/train-*" use_tfds: false validation_data: # 直接匹配所有验证分片文件 input_path: "/your/tfrecords_root_path/validation/validation-*" use_tfds: false
- 直接通过命令行参数覆盖配置,不需要修改本地配置文件:
常见踩坑提示
- 所有本地路径不要包含中文、空格,路径分隔符统一使用正斜杠,避免脚本读取文件失败
- 提前确认运行训练的账号对TFRecords目录、模型输出目录有读写权限,避免因权限不足导致训练中途报错
- 你生成的1024个训练分片、128个验证分片的结构完全符合官方TFRecords的读取要求,不需要额外调整分片排序、读取顺序参数
- 如果单卡显存低于24GB,可在
params_override中适当调小单卡batch size,或开启梯度累积配置,避免OOM报错
内容的提问来源于stack exchange,提问作者kz28
相关产品推荐
相关产品推荐

