Die Reise der Modernisierung von TorchVision – Memoiren eines TorchVision-Entwicklers – 3 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die Reise der Modernisierung von TorchVision – Erinnerungen eines TorchVision-Entwicklers – 3

Die Reise der Modernisierung von TorchVision – Erinnerungen eines TorchVision-Entwicklers – 3

Es ist schon eine Weile her, seit ich das letzte Mal einen neuen Eintrag zu den TorchVision Memoiren gepostet habe Serie. Dachte, ich habe zuvor Neuigkeiten im offiziellen PyTorch-Blog und weiter geteilt Twitter, ich dachte, es wäre eine gute Idee, mehr darüber zu sprechen, was in der letzten Version von TorchVision (v0.12) passiert ist, was in der nächsten Version (v0.13) herauskommt und was unsere Pläne für 2022H2 sind. Mein Ziel ist es, nicht nur einen Überblick über neue Funktionen zu geben, sondern vielmehr Einblicke zu geben, wohin wir das Projekt in den folgenden Monaten führen wollen.

TorchVision v0.12 war eine umfangreiche Veröffentlichung mit doppeltem Fokus: a) Aktualisierung unserer Verfalls- und Modellbeitragsrichtlinien, um die Transparenz zu verbessern und mehr Community-Beitragende zu gewinnen, und b) Verdoppelung unserer Modernisierungsbemühungen durch Hinzufügen beliebter neuer Modellarchitekturen, Datensätze und ML-Techniken.

Aktualisierung unserer Richtlinien

Der Schlüssel für ein erfolgreiches Open-Source-Projekt ist die Aufrechterhaltung einer gesunden, aktiven Community, die dazu beiträgt und es vorantreibt. Daher ist es ein wichtiges Ziel für unser Team, die Anzahl der Community-Beiträge zu erhöhen, mit der langfristigen Vision, es der Community zu ermöglichen, große Funktionen (neue Modelle, ML-Techniken usw.) zusätzlich zu den üblichen inkrementellen Verbesserungen (Bug/Doc-Fixes) beizutragen , kleine Funktionen usw.).

Historisch, obwohl die Gemeinde war begierig Um solche Funktionen beizusteuern, zögerte unser Team, sie zu akzeptieren. Schlüsselblocker war das Fehlen einer konkreten Modellbeitrags- und Abschreibungsrichtlinie. Um dies anzugehen, arbeitete Joao Gomes mit der Community zusammen, um unsere erste zu entwerfen und zu veröffentlichen Musterbeitragsrichtlinien Dies bietet Klarheit über den Prozess des Beitragens neuer Architekturen, vortrainierter Gewichtungen und Funktionen, die ein Modelltraining erfordern. Darüber hinaus arbeitete Nicolas Hug mit PyTorch-Core-Entwicklern zusammen, um ein Konkretes zu formulieren und zu übernehmen Einstellungsrichtlinie.

Die vorgenannten Änderungen wirkten sich sofort positiv auf das Projekt aus. Die neue Beitragsrichtlinie half uns dabei, zahlreiche Community-Beiträge für große Funktionen zu erhalten (weitere Einzelheiten unten) und die klare Abwertungsrichtlinie ermöglichte es uns, unsere Codebasis zu bereinigen und gleichzeitig sicherzustellen, dass TorchVision starke Abwärtskompatibilitätsgarantien bietet. Unser Team ist sehr motiviert, weiterhin mit den Open-Source-Entwicklern, Forschungsteams und nachgelagerten Bibliothekserstellern zusammenzuarbeiten, um TorchVision relevant und aktuell zu halten. Wenn Sie Feedback, Kommentare oder eine Feature-Anfrage haben, bitte erreichen zu uns.

Modernisierung von TorchVision

Es ist kein Geheimnis, dass für die letzten Veröffentlichungen unsere Ziel bestand darin, TorchVision alle notwendigen Erweiterungen, Verluste, Ebenen, Trainingsprogramme und neuartigen Architekturen hinzuzufügen, damit unsere Benutzer SOTA-Ergebnisse mit PyTorch einfach reproduzieren können. TorchVision v0.12 ging diesen Weg weiter:

  • Unsere Mitwirkenden aus der Rockstar-Community, Hu Ye und Zhiqiang Wang, haben dazu beigetragen FCOS Architektur, die ein einstufiges Objekterkennungsmodell ist.

  • Nicolas Hug hat die Unterstützung des optischen Flusses in TorchVision hinzugefügt, indem er die hinzugefügt hat FLOSS die Architektur.

  • Yiwen Song hat Unterstützung für hinzugefügt Vision Transformator (ViT) und ich habe die hinzugefügt ConvNeXt Architektur zusammen mit verbesserten vortrainierten Gewichten.

  • Endlich mit der Hilfe unserer Community haben wir hinzugefügt 14 neue Klassifizierung und 5 neuer optischer Fluss Datensätze.

  • Wie üblich kam das Release mit zahlreichen kleineren Erweiterungen, Fehlerbehebungen und Dokumentationsverbesserungen. Um alle neuen Funktionen und die Liste unserer Mitwirkenden zu sehen, besuchen Sie bitte die Versionshinweise zu Version 0.12.

TorchVision v0.13 steht vor der Tür und wird voraussichtlich Anfang Juni veröffentlicht. Es ist eine sehr große Version mit einer beträchtlichen Anzahl neuer Funktionen und großen API-Verbesserungen.

Abschluss von Modernisierungen und Schließen der Lücke zu SOTA

Wir setzen unsere fort Weg zur Modernisierung der Bibliothek durch Hinzufügen der erforderlichen Grundelemente, Modellarchitekturen und Rezept-Hilfsprogramme, um SOTA-Ergebnisse für wichtige Computer-Vision-Aufgaben zu erzeugen:

  • Mit der Hilfe von Victor Fomin habe ich wichtige fehlende Datenaugmentationstechniken hinzugefügt, wie z AugMix, Jitter im großen Maßstab usw. Diese Techniken ermöglichten es uns, die Lücke zu SOTA zu schließen und bessere Gewichte herzustellen (siehe unten).

  • Mit Hilfe von Aditya Oke, Hu Ye, Yassine Alouini und Abhijit Deo haben wir wichtige gemeinsame Bausteine ​​wie die hinzugefügt DropBlock Schicht, die MLP Block, die cIoU & dIoU Verlust usw. Schließlich habe ich mit Shen Li zusammengearbeitet, um ein seit langem bestehendes Problem bei PyTorch zu beheben SyncBatchNorm Schicht, die die Erkennungsmodelle beeinflusst hat.

  • Hu Ye mit der Unterstützung von Joao Gomes hinzugefügt Swin-Transformator zusammen mit verbesserten vortrainierten Gewichten. Ich habe die hinzugefügt EfficientNetV2 Architektur und mehrere Post-Paper-Architekturoptimierungen zur Implementierung von RetinaNet, FasterRCNN und MaskRCNN.

  • Wie ich bereits im PyTorch-Blog besprochen habe, haben wir erhebliche Anstrengungen unternommen, um unsere vortrainierten Gewichte zu verbessern, indem wir eine verbesserte erstellt haben Trainingsrezept. Dadurch konnten wir die Genauigkeit unserer verbessern Klassifikationsmodelle um 3 Genauigkeitspunkte, wodurch neue SOTA für verschiedene Architekturen erreicht werden. Eine ähnliche Anstrengung wurde für durchgeführt Erkennung und Segmentierung, wo wir die Genauigkeit der Modelle um durchschnittlich über 8.1 mAP verbessert haben. Schließlich arbeitete Yosua Michael M mit Laura Gustafson, Mannat Singhand und Aaron Adcock zusammen, um Unterstützung hinzuzufügen BEUTE, ein Satz neuer, hochpräziser, hochmoderner vortrainierter Gewichte für ViT und RegNets.

Neue Unterstützungs-API für mehrere Gewichte

Da ich zuvor diskutiert Im PyTorch-Blog hat TorchVision seinen bestehenden Modellerstellungsmechanismus erweitert, um mehrere vortrainierte Gewichte zu unterstützen. Die neue API ist vollständig abwärtskompatibel, ermöglicht die Instanziierung von Modellen mit unterschiedlichen Gewichtungen und bietet Mechanismen, um nützliche Metadaten (wie Kategorien, Anzahl der Parameter, Metriken usw.) und die Vorverarbeitungs-Inferenztransformationen des Modells zu erhalten. Es gibt ein dediziertes Feedback Problem auf Github um uns zu helfen, unsere Ecken und Kanten zu bügeln.

Überarbeitete Dokumentation

Nicolas Hug leitete die Restrukturierungsbemühungen Modelldokumentation von TorchVision. Die neue Struktur ist in der Lage, Funktionen der Multi-Weight Support API zu nutzen, um eine bessere Dokumentation für die vortrainierten Gewichte und ihre Verwendung in der Bibliothek zu bieten. Großes Dankeschön an unsere Community-Mitglieder für hilft uns alle Architekturen rechtzeitig dokumentieren.

Obwohl unsere detaillierte Roadmap für 2022H2 noch nicht fertiggestellt ist, sind hier einige Schlüsselprojekte, an denen wir derzeit arbeiten wollen:

  • Wir arbeiten eng mit Haoqi Fan und Christoph Feichtenhofer zusammen PyTorch-Video, um die hinzuzufügen Verbesserter Multiscale Vision Transformer (MViTv2)-Architektur zu TorchVision.

  • Philip Meier und Nicolas Hug arbeiten an einer verbesserten Version des Datensätze-API (v2), die verwendet TorchData und Datenleitungen. Philip Meier, Victor Fomin und ich arbeiten auch daran, unsere zu erweitern Transformiert die API (v2), um nicht nur Bilder, sondern auch Begrenzungsrahmen, Segmentierungsmasken usw. zu unterstützen.

  • Schließlich hilft uns die Community, TorchVision aktuell und relevant zu halten, indem sie beliebte Architekturen und Techniken hinzufügt. Lezwon Castelino arbeitet derzeit mit Victor Fomin zusammen, um das hinzuzufügen SimpleCopyPaste Augmentation. Hu Ye arbeitet derzeit daran, die hinzuzufügen DeTR-Architektur.

Wenn Sie sich an dem Projekt beteiligen möchten, werfen Sie bitte einen Blick auf unsere gute erste Ausgaben und für Stellenangebote Listen. Wenn Sie ein erfahrener PyTorch/Computer Vision-Veteran sind und einen Beitrag leisten möchten, haben wir mehrere Kandidatenprojekte für neue Betreiber, Verluste, Augmentierungen und für.

Ich hoffe, Sie fanden den Artikel interessant. Wenn Sie mit mir in Kontakt treten möchten, rufen Sie mich an LinkedIn or Twitter.

Zeitstempel:

Mehr von Bezugsbox