Ein Überblick über TorchVision v0.11 – Erinnerungen eines TorchVision-Entwicklers – 2

Ein Überblick über TorchVision v0.11 – Erinnerungen eines TorchVision-Entwicklers – 2

  • 10. Oktober 2021
  • Vasilis Vryniotis
  • . Keine Kommentare
Ein Überblick über TorchVision v0.11 – Erinnerungen eines TorchVision-Entwicklers – 2

Es waren ein paar sehr arbeitsreiche Wochen im PyTorch-Land, in denen wir uns fieberhaft auf die Veröffentlichung von PyTorch v1.10 und TorchVision v0.11 vorbereiten. In diesem zweiten Teil der Serie werde ich einige der kommenden Funktionen behandeln, die derzeit im Release-Zweig von TorchVision enthalten sind.

Haftungsausschluss: Obwohl die nächste Version voller Bug-/Test-/Dokumentationserweiterungen und Verbesserungen ist, hebe ich hier neue „benutzerorientierte“ Funktionen in Bereichen hervor, die mich persönlich interessieren. Nachdem ich den Blog-Beitrag geschrieben hatte, bemerkte ich auch eine Vorliebe für Funktionen, die ich überprüft, geschrieben oder deren Entwicklung genau verfolgt hatte. Das Verdecken (oder Nichtverdecken) einer Funktion sagt nichts über ihre Bedeutung aus. Die geäußerten Meinungen sind ausschließlich meine eigenen.

Neue Modelle

Die neue Version ist voller neuer Modelle:

  • Kai Zhang fügte eine Implementierung der RegNet-Architektur sowie vorab trainierte Gewichte für 14 Varianten hinzu, die den Originalartikel genau nachbilden.
  • Ich habe kürzlich eine Implementierung der EfficientNet-Architektur sowie vorab trainierte Gewichte für die B0-B7-Varianten hinzugefügt, die von Luke Melas-Kyriazi und Ross Wightman bereitgestellt wurden.

Neue Datenerweiterungen

In der neuesten Version wurden einige neue Techniken zur Datenerweiterung hinzugefügt:

  • Samuel Gabriel hat zu TrivialAugment beigetragen, einer einfachen, aber sehr effektiven neuen Strategie, die offenbar bessere Ergebnisse als AutoAugment liefert.
  • Ich habe die RandAugment-Methode in den automatischen Erhöhungen hinzugefügt.
  • Ich habe in den Referenzen eine Implementierung der Mixup- und CutMix-Transformationen bereitgestellt. Diese werden in der nächsten Version in Transformationen verschoben, sobald ihre API fertiggestellt ist.

Neue Operatoren und Ebenen

Eine Reihe neuer Operatoren und Ebenen wurden hinzugefügt:

Schulungsreferenzen/Rezepte

Während die Verbesserung unserer Benchmark-Skripte eine kontinuierliche Anstrengung ist, sind hier einige neue Funktionen, die in der nächsten Version enthalten sind:

  • Prabhat Roy hat in unserem Klassifizierungsrezept die Unterstützung für den exponentiellen gleitenden Durchschnitt hinzugefügt.
  • Ich habe unsere Benchmarks aktualisiert, um Label Smoothing zu unterstützen, das kürzlich von Joel Schlosser und Thomas J. Fan auf dem PyTorch-Kern eingeführt wurde.
  • Ich habe die Möglichkeit eingebaut, mithilfe der neuesten von Ilqar Ramazanli entwickelten LR-Planer ein Lernraten-Aufwärmtraining durchzuführen.

Weitere Verbesserungen

Hier sind einige weitere bemerkenswerte Verbesserungen, die in der Version hinzugefügt wurden:

  • Alexander Soare und Francisco Massa haben ein FX-basiertes Dienstprogramm entwickelt, das die Extraktion beliebiger Zwischenmerkmale aus Modellarchitekturen ermöglicht.
  • Nikita Shulga hat TorchVision Unterstützung für CUDA 11.3 hinzugefügt.
  • Zhongkai Zhu hat Probleme mit der Abhängigkeit von JPEG-Bibliotheken behoben (dieses Problem bereitete vielen unserer Benutzer große Kopfschmerzen).

Gegenwart und Zukunft

Es gibt viele coole neue Funktionen in der Entwicklung, die es noch nicht in diese Version geschafft haben. Hier sind einige davon:

  • Moto Hira, Parmeet Singh Bhatia und ich haben einen RFC geschrieben, der einen neuen Mechanismus zum Verwalten von Modellversionen und zum Verwalten von Metadaten im Zusammenhang mit vorab trainierten Gewichten vorschlägt. Dadurch können wir mehrere vorab trainierte Gewichte für jedes Modell unterstützen und den Modellen zugehörige Informationen wie Beschriftungen, Vorverarbeitungstransformationen usw. hinzufügen.
  • Ich arbeite derzeit daran, die vom Projekt „Batteries Included“ hinzugefügten Grundelemente zu verwenden, um die Genauigkeit unserer vorab trainierten Modelle zu verbessern. Ziel ist es, erstklassige Ergebnisse für die beliebtesten vorab trainierten Modelle von TorchVision zu erzielen.
  • Philip Meier und Francisco Massa arbeiten an einem spannenden Prototyp für die neue Dataset- und Transforms-API von TorchVision.
  • Prabhat Roy arbeitet an der Erweiterung von PyTorch Core AveragedModel Klasse zur Unterstützung der Puffermittelung zusätzlich zu den Parametern. Das Fehlen dieser Funktion wird im Allgemeinen als Fehler gemeldet und ermöglicht vielen nachgelagerten Bibliotheken und Frameworks, ihre benutzerdefinierten EMA-Implementierungen zu entfernen.
  • Aditya Oke hat ein Dienstprogramm geschrieben, mit dem die Ergebnisse von Keypoint-Modellen auf den Originalbildern dargestellt werden können (die Funktion war nicht in der Veröffentlichung enthalten, da wir überfordert waren und sie nicht rechtzeitig überprüfen konnten 🙂
  • Ich baue einen Prototyp eines FX-Dienstprogramms, das darauf abzielt, verbleibende Verbindungen in beliebigen Modellarchitekturen zu erkennen und das Netzwerk zu modifizieren, um Regularisierungsblöcke hinzuzufügen (z. B StochasticDepth).

Schließlich gibt es noch einige neue Funktionen in unserem Backlog (PR folgt in Kürze):

Ich hoffe, Sie fanden die obige Zusammenfassung interessant. Alle Ideen, wie das Format der Blog-Reihe angepasst werden kann, sind willkommen. Kontaktieren Sie mich auf LinkedIn oder Twitter.



Source link

Similar Posts