TorchVision 现代化之旅 – TorchVision 开发人员回忆录 – 3 PlatoBlockchain 数据智能。垂直搜索。人工智能。

TorchVision 现代化之旅 – TorchVision 开发人员回忆录 – 3

TorchVision 现代化之旅 – TorchVision 开发人员回忆录 – 3

自从我上次在 TorchVision 回忆录上发布新条目以来已经有一段时间了 系列. 想一想,我之前在 PyTorch 官方博客和 Twitter,我认为最好多谈谈上一版 TorchVision (v0.12) 上发生的事情、下一个版本 (v0.13) 的内容以及我们对 2022H2 的计划。 我的目标不仅仅是提供新功能的概述,而是提供有关我们希望在接下来的几个月中将项目带到哪里的见解。

火炬视觉 v0.12 是一个相当大的版本,具有双重重点:a) 更新我们的弃用和模型贡献政策,以提高透明度并吸引更多的社区贡献者;b) 通过添加流行的新模型架构、数据集和 ML 技术来加倍努力实现现代化。

更新我们的政策

一个成功的开源项目的关键是维护一个健康、活跃的社区,为它做出贡献并推动它向前发展。 因此,我们团队的一个重要目标是增加社区贡献的数量,长期愿景是使社区能够在通常的增量改进(错误/文档修复)之上贡献大特性(新模型、ML 技术等) ,小功能等)。

从历史上看,即使社区 急于 为了贡献这些功能,我们的团队犹豫是否接受它们。 关键阻碍是缺乏具体的模型贡献和弃用政策。 为了解决这个问题,Joao Gomes 与社区合作起草并发布了我们的第一个 模型贡献指南 它清楚地说明了贡献新架构、预训练权重和需要模型训练的特征的过程。 此外,Nicolas Hug 与 PyTorch 核心开发人员合作制定并采用了一个具体的 弃用政策.

上述变化对项目产生了直接的积极影响。 新的贡献政策帮助我们收到了大量社区对大型功能的贡献(更多细节如下),明确的弃用政策使我们能够清理我们的代码库,同时仍然确保 TorchVision 提供强大的向后兼容性保证。 我们的团队非常积极地继续与开源开发人员、研究团队和下游图书馆创建者合作,以保持 TorchVision 的相关性和新鲜感。 如果您有任何反馈、评论或功能请求,请 伸手 对我们

TorchVision 现代化

在最近的几个版本中,我们已经不是什么秘密了 目标 是向 TorchVision 添加所有必要的增强、损失、层、训练实用程序和新颖的架构,以便我们的用户可以使用 PyTorch 轻松重现 SOTA 结果。 TorchVision v0.12 继续沿着这条路线:

  • 我们的摇滚明星社区贡献者胡野和王志强贡献了 飞行控制系统 架构是一种单阶段目标检测模型。

  • Nicolas Hug 通过添加 建筑。

  • 宋一文新增支持 视觉变压器 (ViT) 我添加了 卷积神经网络 架构以及改进的预训练权重。

  • 最后与 帮助 在我们的社区中,我们添加了 14个新分类5 新光流 数据集。

  • 与往常一样,该版本附带了许多较小的增强功能、错误修复和文档改进。 要查看所有新功能和我们的贡献者列表,请查看 v0.12 发行说明.

TorchVision v0.13 指日可待,预计将于 XNUMX 月初发布。 这是一个非常大的版本,包含大量新功能和大量 API 改进。

完成现代化并缩小与 SOTA 的差距

我们正在继续我们的 图书馆现代化之旅 通过添加必要的原语、模型架构和配方实用程序来为关键的计算机视觉任务生成 SOTA 结果:

  • 在 Victor Fomin 的帮助下,我添加了重要的缺失数据增强技术,例如 八月混合, 大规模抖动 等等。这些技术使我们能够缩小与 SOTA 的差距并产生更好的权重(见下文)。

  • 在 Aditya Oke、Hu Ye、Yassine Alouini 和 Abhijit Deo 的帮助下,我们添加了重要的常用构建块,例如 拖放块MLP 块, & 迪欧 损失等。最后我和沉力一起解决了 PyTorch 的一个长期存在的问题 同步批量归一化 影响检测模型的层。

  • 胡烨在 Joao Gomes 的支持下补充道 旋转变压器 以及改进的预训练权重。 我添加了 高效网络V2 架构和几个关于实现的论文后架构优化 RetinaNet、FasterRCNN 和 MaskRCNN.

  • 正如我之前在 PyTorch 博客上所讨论的,我们通过创建一个改进的 训练食谱. 这使我们能够提高我们的准确性 分类模型 3个精度点,实现各种架构的新SOTA。 进行了类似的努力 检测和分割,我们将模型的准确性平均提高了 8.1 mAP 以上。 最后,Yosua Michael M 与 Laura Gustafson、Mannat Singhand 和 Aaron Adcock 合作,增加了对 SWAG,一组用于 ViT 和 RegNets 的新的高度准确的最先进的预训练权重。

新的多权重支持 API

就像我 以前讨论过 在 PyTorch 博客上,TorchVision 扩展了其现有的模型构建器机制,以支持多个预训练的权重。 新的 API 完全向后兼容,允许实例化具有不同权重的模型,并提供获取有用元数据(例如类别、参数数量、指标等)和模型的预处理推理转换的机制。 有专门的反馈 Github 上的问题 帮助我们熨烫任何粗糙的边缘。

修改后的文档

Nicolas Hug 领导了重组 模型文档 TorchVision 的。 新结构能够利用来自 Multi-weight Support API 的特性,为预训练的权重及其在库中的使用提供更好的文档。 向我们的社区成员大喊大叫 帮助我们 按时记录所有架构。

认为我们的 2022H2 详细路线图尚未最终确定,以下是我们目前计划开展的一些关键项目:

  • 我们正在与来自 Haoqi Fan 和 Christoph Feichtenhofer 的密切合作 PyTorch 视频,以添加 改进的多尺度视觉转换器 (MViTv2) 架构到 TorchVision。

  • Philip Meier 和 Nicolas Hug 正在研究改进版 数据集 API (v2) 使用 TorchData 和数据管道. Philip Meier、Victor Fomin 和我也在努力扩展我们的 转换 API (v2) 不仅支持图像,还支持边界框、分割掩码等。

  • 最后,社区通过添加流行的架构和技术来帮助我们保持 TorchVision 的新鲜和相关性。 Lezwon Castelino 目前正在与 Victor Fomin 合作添加 简单复制粘贴 增强。 胡烨目前正在努力添加 DeTR 架构.

如果您想参与该项目,请查看我们的 好的第一个问题求助 列表。 如果你是一名经验丰富的 PyTorch/计算机视觉老手,并且你想做出贡献,我们有几个候选项目可供新 运营商, 损失, 扩增模型.

我希望你觉得这篇文章很有趣。 如果您想联系,请联系我 LinkedIn or Twitter.

时间戳记:

更多来自 基准框