- 21 мая 2022 г.
- Василис Вриниотис
- . Без комментариев
Прошло много времени с тех пор, как я в последний раз публиковал новую запись в серии мемуаров TorchVision. Думал, я ранее делился новостями в официальном блоге PyTorch и на Твиттер, я подумал, что было бы неплохо рассказать больше о том, что произошло в последнем выпуске TorchVision (v0.12), что выйдет в следующем (v0.13) и каковы наши планы на 2022H2. Моя цель — выйти за рамки обзора новых функций и дать представление о том, куда мы хотим направить проект в следующие месяцы.
ТорчВижн v0.12 был значительным выпуском с двойной целью: а) обновить нашу политику устаревания и добавления моделей, чтобы повысить прозрачность и привлечь больше участников сообщества, и б) удвоить наши усилия по модернизации, добавив популярные новые архитектуры моделей, наборы данных и методы машинного обучения.
Обновление наших политик
Ключом к успешному проекту с открытым исходным кодом является поддержание здорового, активного сообщества, которое вносит свой вклад и продвигает его вперед. Таким образом, важной целью для нашей команды является увеличение количества вкладов сообщества с долгосрочным видением, позволяющим сообществу вносить большие функции (новые модели, методы ML и т. д.) в дополнение к обычным постепенным улучшениям (исправления ошибок / документации). , мелкие детали и т. д.).
Исторически, несмотря на то, что община была жаждущий чтобы внести такие функции, наша команда не решалась их принять. Ключевым препятствием было отсутствие конкретной модели вклада и политики устаревания. Чтобы решить эту проблему, Жоао Гомеш работал с сообществом над проектом и публикацией нашего первого руководящие принципы участия в модели который обеспечивает ясность процесса добавления новых архитектур, предварительно обученных весов и функций, требующих обучения модели. Кроме того, Николя Хуг работал с основными разработчиками PyTorch, чтобы сформулировать и принять конкретную политика устаревания.
Вышеупомянутые изменения оказали непосредственное положительное влияние на проект. Новая политика участия помогла нам получить многочисленные предложения сообщества для крупных функций (более подробная информация ниже), а четкая политика устаревания позволила нам очистить нашу кодовую базу, при этом гарантируя, что TorchVision предлагает надежные гарантии обратной совместимости. Наша команда очень заинтересована в продолжении работы с разработчиками открытого исходного кода, исследовательскими группами и создателями последующих библиотек, чтобы поддерживать актуальную и актуальную версию TorchVision. Если у вас есть какие-либо отзывы, комментарии или пожелания, пожалуйста, протянуть руку нам.
Модернизация TorchVision
Не секрет, что за последние несколько релизов наша цель было добавить в TorchVision все необходимые утилиты Augmentations, Losses, Layers, Training и новые архитектуры, чтобы наши пользователи могли легко воспроизводить результаты SOTA с помощью PyTorch. TorchVision v0.12 продолжил этот путь:
-
Наши участники сообщества рок-звезд, Ху Е и Чжицян Ван, внесли свой вклад в ФКОС архитектура, которая представляет собой одноэтапную модель обнаружения объектов.
-
Николя Хуг добавил поддержку оптического потока в TorchVision, добавив ПЛОТ архитектура.
-
Yiwen Song добавила поддержку Преобразователь зрения (ViT), и я добавил ConvNeXt архитектура наряду с улучшенными предварительно обученными весами.
-
Наконец, с помощь нашего сообщества, мы добавили 14 новая классификация и 5 новый оптический поток наборы данных.
-
Как обычно, в выпуске было множество небольших улучшений, исправлений ошибок и улучшений документации. Чтобы увидеть все новые функции и список наших участников, пожалуйста, проверьте примечания к выпуску v0.12.
TorchVision v0.13 уже не за горами, релиз ожидается в начале июня. Это очень большой релиз со значительным количеством новых функций и большими улучшениями API.
Завершение модернизации и сокращение разрыва с SOTA
Мы продолжаем нашу Путь модернизации библиотеки путем добавления необходимых примитивов, архитектур моделей и утилит рецептов для получения результатов SOTA для ключевых задач компьютерного зрения:
-
С помощью Виктора Фомина я добавил важные отсутствующие методы увеличения данных, такие как авгмикс, Крупномасштабный джиттер и т. д. Эти методы позволили нам сократить разрыв с SOTA и получить лучшие веса (см. ниже).
-
С помощью Адитьи Оке, Ху Йе, Ясин Алуини и Абхиджит Део мы добавили важные общие строительные блоки, такие как ДропБлок слой, МЛП блок, т. CIOU & DIOU потеря и т. д. Наконец, я работал с Шен Ли, чтобы исправить давнюю проблему с PyTorch. SyncBatchNorm слой, который повлиял на модели обнаружения.
-
Ху Е при поддержке Жоао Гомеша добавил Свин Трансформер наряду с улучшенными предварительно обученными весами. я добавил Эффективная сеть V2 архитектуру и несколько архитектурных оптимизаций после публикации по реализации RetinaNet, FasterRCNN и MaskRCNN.
-
Как я уже говорил ранее в блоге PyTorch, мы приложили значительные усилия для улучшения наших предварительно обученных весов, создав улучшенный рецепт тренировки. Это позволило нам повысить точность наших Модели классификации на 3 балла точности, достигнув новой SOTA для различных архитектур. Аналогичная попытка была предпринята для Обнаружение и сегментация, где мы улучшили точность моделей в среднем более чем на 8,1 мАд. Наконец, Йосуа Майкл М работал с Лаурой Густафсон, Маннатом Сингхэндом и Аароном Адкоком, чтобы добавить поддержку РАСКАЧИВАТЬСЯнабор новых высокоточных современных предварительно обученных весов для ViT и RegNets.
Новый API поддержки нескольких весов
Как и я ранее обсуждалось в блоге PyTorch TorchVision расширил свой существующий механизм построения моделей для поддержки нескольких предварительно обученных весов. Новый API полностью обратно совместим, позволяет создавать экземпляры моделей с разными весами и предоставляет механизмы для получения полезных метаданных (таких как категории, количество параметров, метрики и т. д.) и преобразований вывода модели в ходе предварительной обработки. Есть специальный отзыв проблема на Github чтобы помочь нам утюжить любые острые края.
Обновленная документация
Николя Хуг возглавил усилия по реструктуризации документация модели компании ТорчВижн. Новая структура может использовать функции API поддержки нескольких весов, чтобы предложить лучшую документацию для предварительно обученных весов и их использования в библиотеке. Большое спасибо членам нашего сообщества за помогает нам своевременно документировать все архитектуры.
Хотя наша подробная дорожная карта на 2022H2 еще не завершена, вот несколько ключевых проектов, над которыми мы сейчас планируем работать:
-
Мы тесно сотрудничаем с Хаоци Фаном и Кристофом Файхтенхофером из Видео с PyTorchчтобы добавить Улучшенный многомасштабный преобразователь зрения (MViTv2) для TorchVision.
-
Филип Мейер и Николя Хуг работают над улучшенной версией API наборов данных (v2), который использует TorchData и каналы данных. Филип Мейер, Виктор Фомин и я также работаем над расширением Преобразования API (v2) для поддержки не только изображений, но и ограничивающих рамок, масок сегментации и т. д.
-
Наконец, сообщество помогает нам поддерживать актуальность TorchVision, добавляя популярные архитектуры и технологии. Лезвон Кастелино в настоящее время работает с Виктором Фоминым над добавлением ПростойКопироватьВставить увеличение. Ху Е в настоящее время работает над добавлением Архитектура DeTR.
Если вы хотите принять участие в проекте, пожалуйста, ознакомьтесь с нашим хорошие первые выпуски и требуется помощь списки. Если вы опытный ветеран PyTorch/Computer Vision и хотели бы внести свой вклад, у нас есть несколько проектов-кандидатов для новых операторы, потери, дополнения и модели.
Я надеюсь, что вы нашли статью интересной. Если вы хотите связаться со мной, позвоните мне LinkedIn или Твиттер.