Podróż modernizacji TorchVision – Wspomnienia dewelopera TorchVision – 3 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Podróż modernizacji TorchVision – Wspomnienia dewelopera TorchVision – 3

Podróż modernizacji TorchVision – Wspomnienia dewelopera TorchVision – 3

Minęło trochę czasu, odkąd ostatnio opublikowałem nowy wpis we wspomnieniach TorchVision seria. Myśl, że wcześniej dzieliłem się wiadomościami na oficjalnym blogu PyTorch i na TwitterPomyślałem, że dobrze byłoby porozmawiać o tym, co wydarzyło się w ostatnim wydaniu TorchVision (v0.12), co wychodzi w następnej (v0.13) i jakie są nasze plany na 2022H2. Moim celem jest wyjście poza przegląd nowych funkcji, a raczej zapewnienie wglądu w to, gdzie chcemy realizować projekt w nadchodzących miesiącach.

TorchVision wersja 0.12 było dużym wydaniem, które skupiało się na dwóch aspektach: a) zaktualizować nasze zasady dotyczące wycofywania i udostępniania modeli, aby poprawić przejrzystość i przyciągnąć więcej współtwórców społeczności oraz b) podwoić nasze wysiłki modernizacyjne, dodając popularne nowe architektury modeli, zestawy danych i techniki ML.

Aktualizacja naszych zasad

Kluczem do udanego projektu open source jest utrzymanie zdrowej, aktywnej społeczności, która wnosi do niego wkład i napędza go do przodu. Dlatego ważnym celem naszego zespołu jest zwiększenie liczby wkładów społeczności, z długoterminową wizją umożliwienia społeczności wnoszenia dużych funkcji (nowe modele, techniki ML itp.) oprócz zwykłych przyrostowych ulepszeń (poprawki błędów/dokumentów). , małe funkcje itp.).

Historycznie, mimo że społeczność była chętny aby wnieść takie funkcje, nasz zespół wahał się, czy je zaakceptować. Kluczową przeszkodą był brak konkretnego wkładu modelowego i polityki amortyzacji. Aby rozwiązać ten problem, Joao Gomes współpracował ze społecznością, aby opracować i opublikować nasz pierwszy wytyczne dotyczące składek modelowych co zapewnia przejrzystość procesu wnoszenia nowych architektur, wstępnie wytrenowanych wag i funkcji, które wymagają szkolenia modeli. Co więcej, Nicolas Hug współpracował z głównymi programistami PyTorch, aby sformułować i zaadaptować konkret polityka wycofywania.

Powyższe zmiany miały natychmiastowy pozytywny wpływ na projekt. Nowa polityka składek pomogła nam otrzymać liczne składki społecznościowe za duże funkcje (więcej szczegółów poniżej), a przejrzysta polityka wycofywania umożliwiła nam uporządkowanie bazy kodu, jednocześnie zapewniając, że TorchVision oferuje silne gwarancje kompatybilności wstecznej. Nasz zespół jest bardzo zmotywowany do dalszej współpracy z programistami open-source, zespołami badawczymi i twórcami dalszych bibliotek, aby TorchVision był odpowiedni i świeży. Jeśli masz jakieś uwagi, komentarze lub prośby o nową funkcję, proszę osiągnąć do nas.

Modernizacja TorchVision

Nie jest tajemnicą, że w ostatnich kilku wydaniach nasza cel było dodanie do TorchVision wszystkich niezbędnych rozszerzeń, strat, warstw, narzędzi szkoleniowych i nowatorskich architektur, aby nasi użytkownicy mogli łatwo odtwarzać wyniki SOTA za pomocą PyTorch. TorchVision v0.12 kontynuował tę drogę:

  • Nasi współtwórcy społeczności rockstar, Hu Ye i Zhiqiang Wang, przyczynili się do tego FCOS architektura będąca jednoetapowym modelem wykrywania obiektów.

  • Nicolas Hug dodał obsługę przepływu optycznego w TorchVision, dodając TRATWA architektura.

  • Yiwen Song dodał wsparcie dla Transformator wizji (ViT) i dodałem ConvNeXt architektura wraz z ulepszonymi wstępnie wyszkolonymi wagami.

  • Wreszcie z pomoc naszej społeczności, dodaliśmy 14 nowa klasyfikacja i 5 nowych przepływów optycznych zestawy danych.

  • Jak zwykle, wydanie zawierało wiele mniejszych ulepszeń, poprawek błędów i ulepszeń dokumentacji. Aby zobaczyć wszystkie nowe funkcje i listę naszych współtwórców, sprawdź v0.12 informacje o wydaniu.

TorchVision v0.13 jest tuż za rogiem, a jego premiera spodziewana jest na początku czerwca. Jest to bardzo duże wydanie ze znaczną liczbą nowych funkcji i dużymi ulepszeniami API.

Podsumowanie modernizacji i wypełnienie luki w SOTA

Kontynuujemy naszą podróż unowocześniania biblioteki poprzez dodanie niezbędnych prymitywów, architektur modeli i narzędzi receptur w celu uzyskania wyników SOTA dla kluczowych zadań Wizji Komputerowej:

  • Z pomocą Victora Fomina dodałem ważne brakujące techniki wzbogacania danych, takie jak SierpniaMix, Jitter dużej skali itp. Techniki te pozwoliły nam wypełnić lukę w stosunku do SOTA i wyprodukować lepsze wagi (patrz poniżej).

  • Z pomocą Aditya Oke, Hu Ye, Yassine Alouini i Abhijit Deo dodaliśmy ważne wspólne elementy konstrukcyjne, takie jak Upuść blok warstwa, plik MLP blok, ci & DioU strata itp. W końcu pracowałem z Shen Li, aby naprawić długotrwały problem dotyczący PyTorch SyncBatchNorm warstwa, która wpłynęła na modele detekcji.

  • Dodano Hu Ye przy wsparciu Joao Gomes Transformator Świnia wraz z ulepszonymi wstępnie wytrenowanymi ciężarami. dodałem Wydajna siećV2 architekturę i kilka post-papierowych optymalizacji architektonicznych dotyczących wdrożenia RetinaNet, FasterRCNN i MaskRCNN.

  • Jak wspomniałem wcześniej na blogu PyTorch, włożyliśmy znaczny wysiłek w ulepszenie naszych wytrenowanych ciężarów poprzez stworzenie ulepszonego przepis na szkolenie. Umożliwiło nam to poprawę dokładności naszych Modele klasyfikacji o 3 punkty dokładności, osiągając nową SOTA dla różnych architektur. Podobny wysiłek wykonano dla Wykrywanie i segmentacja, gdzie poprawiliśmy dokładność modeli średnio o ponad 8.1 mAP. Wreszcie Yosua Michael M współpracował z Laurą Gustafson, Mannatem Singhandem i Aaronem Adcockiem, aby dodać wsparcie dla Swag, zestaw nowych, bardzo dokładnych, najnowocześniejszych, wstępnie przeszkolonych wag dla ViT i RegNets.

Nowy interfejs API obsługi wielu wag

Jak ja wcześniej omówione na blogu PyTorch TorchVision rozszerzył swój istniejący mechanizm konstruktora modeli o obsługę wielu wstępnie wytrenowanych wag. Nowe API jest w pełni kompatybilne wstecz, umożliwia tworzenie instancji modeli o różnych wagach i zapewnia mechanizmy pozyskiwania przydatnych metadanych (takich jak kategorie, liczba parametrów, metryki itp.) oraz transformacje wnioskowania wstępnego przetwarzania modelu. Istnieje dedykowana informacja zwrotna problem na Github aby pomóc nam wyprasować wszelkie szorstkie krawędzie.

Zaktualizowana dokumentacja

Nicolas Hug kierował wysiłkami na rzecz restrukturyzacji dokumentacja modelu TorchVision. Nowa struktura umożliwia korzystanie z funkcji pochodzących z interfejsu Multi-weight Support API, aby zapewnić lepszą dokumentację wstępnie wytrenowanych wag i ich wykorzystania w bibliotece. Ogromne podziękowania dla członków naszej społeczności za pomagając nam dokumentować wszystkie architektury na czas.

Chociaż nasz szczegółowy plan działania na 2022H2 nie został jeszcze sfinalizowany, oto kilka kluczowych projektów, nad którymi obecnie planujemy pracować:

  • Ściśle współpracujemy z Haoqi Fan i Christophem Feichtenhoferem z Wideo PyTorch, aby dodać Ulepszony wieloskalowy transformator wizyjny (MViTv2) do TorchVision.

  • Philip Meier i Nicolas Hug pracują nad ulepszoną wersją API zbiorów danych (v2), który używa TorchData i rury danych. Philip Meier, Victor Fomin i ja również pracujemy nad rozszerzeniem naszego Przekształca API (v2) do obsługi nie tylko obrazów, ale także ramek granicznych, masek segmentacji itp.

  • Wreszcie społeczność pomaga nam zachować świeżość i trafność TorchVision, dodając popularne architektury i techniki. Lezwon Castelino pracuje obecnie z Victorem Fominem nad dodaniem ProsteKopiujWklej powiększenie. Hu Ye pracuje obecnie nad dodaniem Architektura DeTR.

Jeśli chcesz zaangażować się w projekt, zajrzyj do naszego dobre pierwsze wydania oraz potrzebna pomoc listy. Jeśli jesteś doświadczonym weteranem PyTorch/Computer Vision i chciałbyś wnieść swój wkład, mamy kilka projektów kandydujących do nowych operatorzy, straty, augmentacje i modele.

Mam nadzieję, że artykuł był dla Ciebie interesujący. Jeśli chcesz się skontaktować, napisz do mnie LinkedIn or Twitter.

Znak czasu:

Więcej z Skrzynka odniesienia