《CVPR2025-DEIM创新改进项目实战:从原理到部署的深度学习优化全攻略》007、数据准备——ImageNet/COCO数据集预处理与增强策略
CVPR2025-DEIM创新改进项目实战:数据准备——ImageNet/COCO数据集预处理与增强策略一、一个让我熬夜到凌晨三点的bug去年秋天做DEIM(Dynamic Efficient Inference Module)的复现实验,跑ImageNet分类任务,训练了三天loss死活不降。检查了模型结构、优化器、学习率调度,一切正常。最后用matplotlib把输入tensor画出来一看——图像全是黑的。再查,发现预处理时把像素值归一化到了[0,1]区间,但模型内部某个子模块期望输入是[-1,1]。这种低级错误,浪费了整整72小时GPU算力。从那以后,我养成了一个习惯:每次写数据加载代码,先跑一个batch,把图像和标签打印出来肉眼检查。别嫌麻烦,这比debug三天划算得多。二、ImageNet预处理:那些文档里不会写的细节2.1 标准流程的“坑”在哪里ImageNet官方推荐的预处理流程:Resize到256→CenterCrop到224→ToTensor→Normalize。看起来简单,但实际部署时你会发现,这个流程在训练和推理阶段的表现差异巨大。训练阶段,我们通常用RandomResizedCrop代替Resize+Crop。这个函数内部做了随机裁剪和缩放,相当于自带数据增强。但注意它的参数——scale默认是(0.08, 1.0),意味着可能只保留原图8%的区域。对于某些细粒度分类任务,这个比例太激进了。我做过实验,把s