TorchVision v0.9 已发布,其中包含众多新的机器学习模型和功能、速度改进和错误修复。在这篇博文中,我们将快速概述新引入的机器学习模型,并讨论它们的主要特点和特性。
分类
- MobileNetV3 大与小:这两个分类模型针对移动使用场景进行了优化,并用作其他计算机视觉任务的骨干网络。新MobileNetV3 架构的实现支持大和小两种变体,以及原始论文中描述的深度乘数参数。我们为深度乘数为 1.0、分辨率为 224x224 的大网络和小网络提供了 ImageNet 上的预训练权重。我们之前的训练配方已经更新,可以轻松地从头开始训练模型(特别感谢 Ross Wightman 启发了我们的一些训练配置)。大变体与 ResNet50 相比提供了具有竞争力的准确性,同时在 CPU 上快 6 倍以上,这意味着它是对速度有要求的应用的良好选择。对于速度至关重要的应用,可以牺牲进一步的准确性来换取速度,并使用比 ResNet50 快 15 倍的小变体。
- 量化 MobileNetV3 大:量化版本的 MobilNetV3 大模型将参数数量减少了 45%,并且比非量化版本快大约 2.5 倍,同时在准确性方面保持竞争力。它通过对非量化版本进行迭代,使用量化感知训练在 ImageNet 上进行拟合,并且可以使用现有的参考脚本从头开始训练。
用法
model = torchvision.models.mobilenet_v3_large(pretrained=True)
# model = torchvision.models.mobilenet_v3_small(pretrained=True)
# model = torchvision.models.quantization.mobilenet_v3_large(pretrained=True)
model.eval()
predictions = model(img)
目标检测
- Faster R-CNN MobileNetV3-Large FPN:将 MobileNetV3 大骨干网络与 Faster R-CNN 检测器和特征金字塔网络相结合,可以得到一个高精度、快速的目标检测器。预训练权重是使用提供的参考脚本在 COCO 2017 上拟合的,该模型在 CPU 上比同等的 ResNet50 检测器快 5 倍,同时在准确性方面保持竞争力。
- Faster R-CNN MobileNetV3-Large 320 FPN:这是前一个模型的迭代版本,它使用降低的分辨率(最小尺寸=320 像素),牺牲准确性以换取速度。它在 CPU 上比同等的 ResNet50 检测器快 25 倍,因此非常适合实际的移动使用场景。
用法
model = torchvision.models.detection.fasterrcnn_mobilenet_v3_large_fpn(pretrained=True)
# model = torchvision.models.detection.fasterrcnn_mobilenet_v3_large_320_fpn(pretrained=True)
model.eval()
predictions = model(img)
语义分割
- DeepLabV3 结合膨胀 MobileNetV3 大骨干:将膨胀版本的 MobileNetV3 大骨干与 DeepLabV3 结合,有助于我们构建一个高精度、快速的语义分割模型。预训练权重是使用我们的标准训练配方在 COCO 2017 上拟合的。最终模型的准确性与 FCN ResNet50 相同,但在 CPU 上快 8.5 倍,因此它可以很好地替代大多数应用程序。
- Lite R-ASPP 结合膨胀 MobileNetV3 大骨干:我们引入了一种名为 Lite R-ASPP 的新型分割头实现,并将其与膨胀 MobileNetV3 大骨干相结合,以构建一个非常快速的分割模型。新模型牺牲了一些准确性,与之前最轻量的分割模型 FCN ResNet50 相比,实现了 15 倍的速度提升。
用法
model = torchvision.models.segmentation.deeplabv3_mobilenet_v3_large(pretrained=True)
# model = torchvision.models.segmentation.lraspp_mobilenet_v3_large(pretrained=True)
model.eval()
predictions = model(img)
在不久的将来,我们计划发布一篇涵盖上述模型训练细节的文章,并讨论它们的权衡和设计选择。在此之前,我们鼓励您尝试新模型并提供反馈。