拓冰建站拓冰建站
首页 / 资讯中心 / 正文

用 Ultralytics YOLO 在 ImageNet (ILSVRC-2012) 上训练与评估图像分类模型:完整指南

用 Ultralytics YOLO 在 ImageNet (ILSVRC-2012) 上训练与评估图像分类模型完整指南【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics本文为基于 Ultralytics 仓库官方文档docs/en/datasets/classify/imagenet.md并结合仓库源码ImageNet.yaml、get_imagenet.sh、data/utils.py、classify/train.py编写的技术指南。读完后你将掌握dataimagenet数据集的确切规模与目录结构、Ultralytics 自动下载机制、YOLO 分类模型在 ImageNet 上的完整训练命令Python 与 CLI以及 ImageNet 作为深度视觉分类事实基准的技术背景与 ILSVRC 竞赛历史。ImageNet 数据集概览Ultralytics ImageNet数据集dataimagenet是用于训练与基准测试图像分类模型的ImageNet-1k / ILSVRC-2012 子集。其核心规格为1,000 个物体类别1,281,167 张训练图像50,000 张验证图像训练/评测图像尺寸224×224完整下载体积约144 GB更完整的 ImageNet 数据库规模远大于此——超过 1,400 万张高分辨率图像、按 WordNet 同义词集synset标注涵盖 20,000 多个类别。但 Ultralytics 使用的是业界标准化的 1,000 类 ILSVRC 子集这也是深度学习计算机视觉领域的事实预训练基准。该数据集的关键特性imagenet数据集提供 ILSVRC-2012 标准的 1,000 类、1,281,167 张训练图与 50,000 张验证图是图像分类的标准预训练基准类别按WordNet 层级组织每个类别对应一个 synset同义词集合图像以 224×224 尺寸训练完整数据约 144 GB 下载量年度 ImageNet 大规模视觉识别挑战赛ILSVRC推动了计算机视觉研究的重要进展。ILSVRC-2012 数据划分与目录结构Ultralytics 的 ImageNet 数据集采用 ILSVRC-2012 划分划分图像数类别数训练集1,281,1671,000验证集50,0001,000图像存储于按 WordNet synset ID 命名的每类文件夹中例如n01440764这正是 Ultralytics 分类训练所期望的目录布局。1,000 个类别中的每一个都映射到一个 WordNet synset由于没有单独的测试划分50,000 张图像的验证集被用来度量准确率。数据目录布局从 get_imagenet.sh 可以确认 Ultralytics 约定的解压布局parent/ ├── ultralytics └── datasets └── imagenet # 下载/解压位置 ├── train/ # 1,281,167 张图像按 synset 子目录存放n01440764/... └── val/ # 50,000 张图像经 valprep 后同样移入每类子目录对应地ImageNet.yaml 中声明path: imagenet # dataset root dir train: train # train images (relative to path) 1281167 images val: val # val images (relative to path) 50000 images test: # test images (optional)注意下载体积ImageNet-1k 约为 144 GB 下载量训练前请确认磁盘空间充足。若只做快速实验较小的 ImageNette 与 ImageNet10 子集采用完全相同的目录格式且训练时间只占一小部分。仓库源码剖析自动下载、类别名与训练器1. 一键自动下载机制在 data/utils.py 中当传入dataimagenet但本地找不到数据集目录时Ultralytics 会自动调用下载脚本if str(dataset) imagenet: subprocess.run([bash, str(ROOT / data/scripts/get_imagenet.sh)], checkTrue)get_imagenet.sh 的关键行为均可从脚本源码直接验证训练集wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train.tar约 138 GB1,281,167 张图像先解压外层 tar再遍历 1,000 个 synset 子 tar 分别解到同名目录形成train/nXXXX/YYYY.JPEG布局验证集wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar约 6.3 GB50,000 张图像解包后执行valprep.sh把验证图像按类移动到子目录使其与训练集布局一致这也是无独立测试集、以验证集评测的原因脚本支持可选参数bash data/scripts/get_imagenet.sh --train --val不带参数时默认两者都下载脚本末尾还留有一行可选注释rm train/n04266014/n04266014_10835.JPEG——删除一张名为 JPEG 实为 PNG的损坏图像避免个别数据加载器解析失败。2. 内置 1,000 类简化类别名ImageNet.yaml 内联了全部 1,000 个类别名names映射键 0–999这些名称采用社区常用的简化标签脚本头注释注明来源为anishathalye/imagenet-simple-labels。例如前几类为names: 0: tench 1: goldfish 2: great white shark 3: tiger shark ... 980: volcano 999: traffic circle值得注意的是autobackend.py 中有一条针对性处理当模型携带的类别名以n0开头时即n01440764这类 synset 编码代码会尝试将这类 ImageNet 类码解析/替换为可读名称——说明 Ultralytics 对synset ID 目录 模型类名的两种表示都做了兼容。3. ClassificationTrainer默认 224 与输出头重塑分类训练的入口类是 classify/train.py 中的ClassificationTrainer几个与 ImageNet 训练直接相关的实现细节imgsz 默认 224构造函数中if overrides.get(imgsz) is None: overrides[imgsz] 224与 ImageNet 的 224×224 标准训练尺寸一致类别数自适应get_model()用ncself.data[nc]构建模型setup_model()中通过ClassificationModel.reshape_outputs(self.model, self.data[nc])把分类头重塑为数据集中的类别数——因此同一套代码既能全量在 ImageNet 1,000 类上训练也能在imagenet10等小子集上微调训练时剔除多余类别get_dataloader()会过滤类别索引 ≥nc的样本并给出警告避免数据/模型类别数不一致导致 CUDA 断言错误torchvision 模型直通若model名称命中torchvision.models如resnet50训练器会直接以IMAGENET1K_V1预训练权重加载这正对应ImageNet 预训练权重是迁移学习常见起点这一惯例。ImageNet 预训练模型性能参考Ultralytics 提供的 YOLO26 分类系列模型均按 224 输入在 ImageNet 上评测官方性能数据见 yolo-cls-perf.md模型输入尺寸Top-1 准确率Top-5 准确率CPU ONNX 延迟 (ms)T4 TensorRT10 延迟 (ms)参数量 (M)224 输入 FLOPs (B)YOLO26n-cls22471.490.15.0 ± 0.31.1 ± 0.02.80.5YOLO26s-cls22476.092.97.9 ± 0.21.3 ± 0.06.71.6YOLO26m-cls22478.194.217.2 ± 0.42.0 ± 0.011.64.9YOLO26l-cls22479.094.623.2 ± 0.32.8 ± 0.014.16.2YOLO26x-cls22479.995.041.4 ± 0.93.8 ± 0.029.613.6其中YOLO26n-cls 以 71.4% Top-1 / 90.1% Top-5 准确率配合约 0.5 B FLOPs在实时应用场景下是速度与精度的平衡点预训练权重可以显著降低从零训练的算力开销并加快开发迭代。在 ImageNet 上训练 YOLO 分类模型在 ImageNet 上训练一个 224×224、跑 100 个 epoch 的 YOLO 分类模型使用以下代码片段。完整参数列表请参见模型训练页面。Pythonfrom ultralytics import YOLO # 加载模型 model YOLO(yolo26n-cls.pt) # 加载预训练模型训练推荐 # 训练模型 results model.train(dataimagenet, epochs100, imgsz224)CLI# 从预训练 *.pt 模型开始训练 yolo classify train dataimagenet modelyolo26n-cls.pt epochs100 imgsz224参数说明结合 cfg/init.py 与训练器源码参数示例取值说明modelyolo26n-cls.pt预训练分类权重。classify 任务的默认模型即yolo26n-cls.pt见TASK2MODELdataimagenet数据集标识。注意 classify 的默认演示数据是imagenet10见TASK2DATA全量 ImageNet 必须显式指定epochs100训练轮数imgsz224输入尺寸。分类训练器未指定时默认即为 224此外也可以借助 Ultralytics Platform 在云端管理分类数据集并运行训练。快速验证小子集先行全量 144 GB 下载之前建议先按官方约定用小子集验证环境与流程二者目录格式与全量一致yolo classify train modelyolo26n-cls.pt dataimagenet10 epochs10 imgsz224仓库测试与文档示例中如 val.py 的 doctest普遍以dataimagenet10作为 classify 任务的示例数据这一约定同样适用于 ImageNet 全量流程的预演。ILSVRC 与 ImageNet 的视觉意义年度ImageNet 大规模视觉识别挑战赛ILSVRC让研究者可以在大规模、标准化的数据集上以一致的评测指标对算法进行基准测试。它推动了深度视觉学习在图像分类、目标检测及其他视觉任务上的重大进展——最具代表性的是 2012 年 AlexNet 的夺冠它帮助开启了现代深度学习时代。ImageNet 也被广泛用于训练与评估深度模型做图像分类、目标检测与目标定位。AlexNet、VGG、ResNet 等里程碑式架构都在 ImageNet 上完成开发与基准评测而ImageNet 预训练权重至今仍是各类视觉任务迁移学习的常用起点这也体现在上文setup_model()中直接使用IMAGENET1K_V1权重的实现。引用与致谢若在研究或开发中使用 ImageNet 数据集请引用以下论文article{ILSVRC15, author {Olga Russakovsky and Jia Deng and Hao Su and Jonathan Krause and Sanjeev Satheesh and Sean Ma and Zhiheng Huang and Andrej Karpathy and Aditya Khosla and Michael Bernstein and Alexander C. Berg and Li Fei-Fei}, title{ImageNet Large Scale Visual Recognition Challenge}, year{2015}, journal{International Journal of Computer Vision (IJCV)}, volume{115}, number{3}, pages{211-252} }在此向 ImageNet 团队致谢——由 Olga Russakovsky、Jia Deng 与 Li Fei-Fei 领衔其创建并维护的 ImageNet 数据集是机器学习与计算机视觉研究社区的重要资源。常见问题FAQImageNet 数据集是什么在计算机视觉中如何使用ImageNet 是一个大规模图像数据库其完整集合包含超过 1,400 万张按 WordNet synset 标注的高分辨率图像。在 Ultralytics 中dataimagenet对应标准化的 1,000 类 ILSVRC-2012 子集是图像分类预训练的事实基准。AlexNet、VGG、ResNet 等标志性模型都在 ImageNet 上训练与评测凸显了它对计算机视觉发展的推动作用。ImageNet 数据集有多少类别和图像Ultralytics 的imagenet数据集使用 ILSVRC-2012 子集1,000 类、1,281,167 张训练图像、50,000 张验证图像训练尺寸 224×224总下载量约 144 GB。完整 ImageNet 数据库大得多超过 1,400 万张图像、20,000 多个 WordNet synset但用于分类训练与基准测试的是这 1,000 类子集。如何在 ImageNet 上训练 YOLO 图像分类模型加载一个预训练分类模型并把data指向imagenet即可见上文训练小节的 Python/CLI 示例。更深入的训练参数说明见训练页面。为什么选择 Ultralytics YOLO26 预训练模型做 ImageNet 项目YOLO26 预训练模型在速度与准确率上表现优异例如 YOLO26n-cls 的 Top-1 准确率为 71.4%、Top-5 为 90.1%且推理开销小适合实时应用详见性能参考。预训练模型降低了从零训练所需的计算资源加速开发周期。ILSVRC 在计算机视觉中扮演什么角色年度 ILSVRC 通过提供大规模、标准化数据集上的竞争式评测平台推动了视觉技术进展。其一致的评测指标促进了图像分类、目标检测与图像分割的创新持续推动深度学习与计算机视觉的边界。适用前提与限制小结dataimagenet需要约144 GB可用磁盘训练 138 GB 验证 6.3 GB解压后体积更大且首次训练时会自动触发 get_imagenet.sh 下载请预留充足的下载时间与带宽图像尺寸固定按224×224训练与评测与 YOLO26-cls 系列模型的评测条件一致由于无独立测试集50,000 张验证集同时承担评测职责报告中请以验证集准确率为基准若本地已有 ILSVRC-2012 数据只需按datasets/imagenet/{train,val}布局放置含 synset 子目录Ultralytics 会直接复用而不再下载见 data/utils.py 中目录存在则跳过下载的逻辑。【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门