TorchVision v0.9 已发布,它包含众多新的机器学习模型和功能、速度提升以及错误修复。在这篇博文中,我们将快速概述新引入的机器学习模型,并讨论它们的主要特点和特性。
分类
- MobileNetV3 大型与小型: 这两个分类模型针对移动用例进行了优化,并用作其他计算机视觉任务的骨干。新MobileNetV3 架构的实现支持原始论文中描述的大型和小型变体以及深度乘数参数。我们为大型和小型网络提供 ImageNet 上预训练的权重,深度乘数为 1.0,分辨率为 224×224。我们之前的训练配方已更新,可用于轻松从头开始训练模型(感谢 Ross Wightman 启发了我们的一些训练配置)。大型变体与 ResNet50 相比,准确性具有竞争力,同时在 CPU 上快 6 倍以上,这意味着它对于速度很重要的应用程序是一个很好的选择。对于速度至关重要的应用程序,可以进一步牺牲准确性以换取速度,并使用比 ResNet50 快 15 倍的小型变体。
- 量化 MobileNetV3 大型: 量化版本的 MobileNetV3 大型减少了 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 Large 骨干与 Faster R-CNN 检测器和特征金字塔网络相结合,可以实现高精度和快速的目标检测器。预训练权重是使用提供的参考脚本在 COCO 2017 上拟合的,该模型在 CPU 上比同等的 ResNet50 检测器快 5 倍,同时在准确性方面保持竞争力。
- Faster R-CNN MobileNetV3-Large 320 FPN: 这是前一个模型的迭代版本,它使用降低的分辨率(min_size=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)
语义分割
- 带空洞 MobileNetV3 大型骨干的 DeepLabV3: 带有 DeepLabV3 的 MobileNetV3 大型骨干的空洞版本有助于我们构建高精度和快速的语义分割模型。预训练权重是使用我们的标准训练配方在 COCO 2017 上拟合的。最终模型与 FCN ResNet50 具有相同的准确性,但在 CPU 上快 8.5 倍,因此是大多数应用程序的绝佳替代品。
- 带空洞 MobileNetV3 大型骨干的 Lite R-ASPP: 我们引入了一种名为 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)
在不久的将来,我们计划发表一篇文章,详细介绍上述模型的训练方式,并讨论它们的权衡和设计选择。在此之前,我们鼓励您尝试新模型并提供反馈。