ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 pytorch-image-models 的 validate.py 在 ImageNet 验证集上评估 timm 模型并导出 CSV 结果?

如何用 pytorch-image-models 的 validate.py 在 ImageNet 验证集上评估 timm 模型并导出 CSV 结果? 如何用 pytorch-image-models 的 validate.py 在 ImageNet 验证集上评估 timm 模型并导出 CSV 结果【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models在 timmpytorch-image-models里validate.py是仓库根目录自带的验证脚本它在一个按 ImageNet 结构组织的验证集上加载一个 timm 模型跑完整个验证集后输出 Top-1 / Top-5 准确率并把汇总结果写入 CSV或 JSON文件。本文的目标就一条从仓库中取出validate.py在 ImageNet 验证集上评估一个已带预训练权重的模型并把结果落盘成 CSV。前提脚本不在 pip 发行包里需要仓库根目录pip install timm安装的是库本身但训练/验证/推理脚本并不随 pip 包分发见 Scripts 文档 开头说明Scripts are not currently packaged in the pip release。所以要同时拿到validate.py和可用的timm库最省事的路径是从源码安装这样仓库根目录里的脚本和库一起就位参考 Installation 的 From Source 一节git clone 仓库地址 pytorch-image-models # 换成你使用的 pytorch-image-models 仓库地址 cd pytorch-image-models pip install -e .安装完成后可用 Installation 给出的检查命令确认库能正常加载python -c from timm import list_models; print(list_models(pretrainedTrue)[:5])能打印出一批模型名即表示timm安装成功。注意validate.py里的模型名、数据加载和权重都依赖timm库两者必须来自同一套代码这也是要一起准备的原因。准备 ImageNet 验证集目录validate.py的--data-dir指向的是验证图片所在文件夹本身而不是训练时那种包含train/validation两个子目录的根目录Scripts 文档 明确Specify the folder containing validation images, not the base as in training script。以标准 ImageNet-1k 为例应指向 5 万张验证图片的目录例如/imagenet/validation/。默认数据集读取方式是 ImageFolder--dataset留空时的默认值见 validate.py 的--dataset说明。如果你用的是 tar 打包的验证集等其它组织方式可通过--dataset type/name指定数据集类型与名称。默认加载 4 个 worker-j、batch size 256-b可在显存不足时调小。运行单模型验证主路径下面这条命令用模型的预训练权重在验证集上评估seresnext26_32x4d该示例命令直接取自 Scripts 文档并把结果写入val.csvpython validate.py --data-dir /imagenet/validation/ --model seresnext26_32x4d --pretrained --results-file val.csv各参数与适用条件--data-dir验证图片目录必填。--model / -m模型架构名默认dpn92。名字可用通配符也可指向一个包含模型名的文本文件见 validate.py 的main()逻辑。--pretrained使用模型自带的预训练权重。不加该参数、又未提供--checkpoint时脚本内部会把pretrained置为Truevalidate.py 中args.pretrained args.pretrained or not args.checkpoint。--results-file结果输出文件名留空则不写文件只打印到终端。--results-format输出格式csv默认或json见 validate.py 的--results-format。脚本的默认设备是cuda--device默认值cuda需要换到别的加速器时显式传--device。要开启混合精度推理可加--amp默认float16可用--amp-dtype改为bfloat16见 validate.py。从训练 checkpoint 评估如果要评估的是自己训练的 checkpoint 而不是官方预训练权重改用--checkpoint指定权重文件该示例命令取自 Scripts 文档python validate.py --data-dir /imagenet/validation/ --model mobilenetv3_large_100 --checkpoint ./output/train/model_best.pth.tar--checkpoint指向单个.pth.tar/.pth文件。当--checkpoint指向一个目录时脚本会批量验证该目录下同架构的所有 checkpointglob匹配*.pth.tar和*.pth见 validate.py 的main()结果会按 Top-1 排序。若 checkpoint 里带有 EMA 权重可加--use-ema选用 EMA 版本。验证输出与 CSV 结果运行结束时脚本会在日志里打印一行汇总例如* Acc1 xxx.xxx (xxx.xxx) Acc5 xxx.xxx (xxx.xxx)以上xxx为占位实际数值取决于你的模型与验证集文档未给出固定预期值。同时脚本会把完整结果以 JSON 形式打印到标准输出并用--result作为分隔标记方便上层脚本解析见 validate.py 末尾的print。当指定了--results-file时write_results会把汇总写成 CSV。CSV 的列来自结果字典的键包含model、top1、top1_err、top5、top5_err、param_count、img_size、crop_pct、interpolation等字段validate.py 的resultsOrderedDict。仓库里已有一份真实结果样例 results-imagenet.csv其表头为model,img_size,top1,top1_err,top5,top5_err,param_count,crop_pct,interpolation打开你生成的val.csv确认出现对应模型的一行记录、且 Top-1/Top-5 为合理数值就说明这次验证与导出成功了。这些数值本身取决于模型与验证集不是固定目标不要与样例文件里的数字做绝对对比。可选分支批量验证多个模型如果要在一次运行里评估一批模型并汇成一个 CSV可用 bulk_runner.py 作为外层驱动它会对每个模型在独立进程里调用validate.py。文档给出的示例见 bulk_runner.py 顶部用通配符筛选了模型列表python bulk_runner.py --model-list all --results-file val.csv --pretrained validate.py --data-dir /imagenet/validation/ --amp -b 512 --retry--model-list可换成vit*这类筛选表达式只跑匹配的子集避免一次跑全部模型。--retry启用 batch size 衰减与重试显存吃紧时更稳见 validate.py 的_try_run。该批量入口仍只做验证 汇总 CSV这一件事不会顺带执行训练等其它任务因此可以作为当前场景的可选路径。限制与注意ImageNet-1k 的 5 万张验证集在训练时也被用来选模型所以它不是真正的测试集见 results/README.md。需要衡量泛化时仓库还提供了 ImageNetV2、ImageNet-Sketch 等额外测试集的 CSV见 results/README.md 的 Datasets 一节。默认设备为cuda、默认 batch 256显存不足时先调小-b或加--retry让脚本自动降 batch 重试。需要额外指标precision / recall / F1时加--metrics-avg {micro,macro,weighted}该功能依赖 scikit-learn未安装时脚本会给出pip install scikit-learn的提示并跳过见 validate.py。--results-file留空时不会生成 CSV只有终端日志与 stdout 的 JSON要落盘必须显式传该参数。【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表