- 2022 年 5 月 21 日
- 瓦西利斯·弗里尼奥提斯(Vasilis Vryniotis)
- 。 没意见
自从我上次在 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 通过添加 筏 建筑。
-
与往常一样,该版本附带了许多较小的增强功能、错误修复和文档改进。 要查看所有新功能和我们的贡献者列表,请查看 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/计算机视觉老手,并且你想做出贡献,我们有几个候选项目可供新 运营商, 损失, 扩增 和 模型.