Rejsen med at modernisere TorchVision – Memoirs of a TorchVision-udvikler – 3 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Rejsen med at modernisere TorchVision – Memoirs of a TorchVision-udvikler – 3

Rejsen med at modernisere TorchVision – Memoirs of a TorchVision-udvikler – 3

Det er et stykke tid siden, jeg sidst skrev et nyt indlæg om TorchVision-memoirerne serie. Tænkte, jeg har tidligere delt nyheder på den officielle PyTorch-blog og videre Twitter, jeg tænkte, at det ville være en god idé at tale mere om, hvad der skete på den sidste udgivelse af TorchVision (v0.12), hvad der kommer ud på den næste (v0.13), og hvad er vores planer for 2022H2. Mit mål er at gå ud over at give et overblik over nye funktioner og hellere give indsigt i, hvor vi ønsker at tage projektet hen i de følgende måneder.

TorchVision v0.12 var en betydelig udgivelse med dobbelt fokus: a) opdatere vores udfasnings- og modelbidragspolitikker for at forbedre gennemsigtigheden og tiltrække flere fællesskabsbidragydere og b) fordoble vores moderniseringsindsats ved at tilføje populære nye modelarkitekturer, datasæt og ML-teknikker.

Opdatering af vores politikker

Nøglen til et succesfuldt open source-projekt er at opretholde et sundt, aktivt fællesskab, der bidrager til det og driver det fremad. Derfor er et vigtigt mål for vores team at øge antallet af fællesskabsbidrag med den langsigtede vision om at gøre det muligt for fællesskabet at bidrage med store funktioner (nye modeller, ML-teknikker osv.) oven i de sædvanlige trinvise forbedringer (fejl-/doc-rettelser , små funktioner osv.).

Historisk set, selvom samfundet var ivrige for at bidrage med sådanne funktioner tøvede vores team med at acceptere dem. Nøgleblokering var manglen på en konkret modelbidrag og afskrivningspolitik. For at løse dette arbejdede Joao Gomes sammen med fællesskabet om at udarbejde og udgive vores første retningslinjer for modelbidrag som giver klarhed over processen med at bidrage med nye arkitekturer, fortrænede vægte og funktioner, der kræver modeltræning. Desuden arbejdede Nicolas Hug sammen med PyTorch kerneudviklere for at formulere og vedtage en konkret afskrivningspolitik.

De førnævnte ændringer havde umiddelbare positive effekter på projektet. Den nye bidragspolitik hjalp os med at modtage adskillige fællesskabsbidrag til store funktioner (flere detaljer nedenfor), og den klare udfasningspolitik gjorde det muligt for os at rydde op i vores kodebase, mens vi stadig sikrede, at TorchVision tilbyder stærke bagudkompatibilitetsgarantier. Vores team er meget motiveret til at fortsætte med at arbejde med open source-udviklere, forskningsteams og downstream-biblioteksskabere for at vedligeholde TorchVision relevant og frisk. Hvis du har feedback, kommentar eller en funktionsanmodning, bedes du venligst række ud til os.

Modernisering af TorchVision

Det er ingen hemmelighed, at for de sidste par udgivelser vores mål var at tilføje alle de nødvendige forstærkninger, tab, lag, træningsværktøjer og nye arkitekturer til TorchVision, så vores brugere nemt kan reproducere SOTA-resultater ved hjælp af PyTorch. TorchVision v0.12 fortsatte ned ad den vej:

  • Vores rockstjerne-fællesskabsbidragydere, Hu Ye og Zhiqiang Wang, har bidraget FCOS arkitektur, som er en et-trins objektdetektionsmodel.

  • Nicolas Hug har tilføjet understøttelse af optisk flow i TorchVision ved at tilføje TØMMERFLÅDE arkitektur.

  • Yiwen Song har tilføjet støtte til Vision Transformer (ViT) og jeg har tilføjet ConvNeXt arkitektur sammen med forbedrede fortrænede vægte.

  • Endelig med hjælpe af vores samfund, har vi tilføjet 14 ny klassifikation , 5 nye optiske flow datasæt.

  • Som sædvanligt kom udgivelsen med adskillige mindre forbedringer, fejlrettelser og dokumentationsforbedringer. For at se alle de nye funktioner og listen over vores bidragydere, tjek venligst v0.12 release notes.

TorchVision v0.13 er lige rundt om hjørnet med den forventede udgivelse i begyndelsen af ​​juni. Det er en meget stor udgivelse med et betydeligt antal nye funktioner og store API-forbedringer.

Afslutte moderniseringer og lukke hullet fra SOTA

Vi fortsætter vores rejse med at modernisere biblioteket ved at tilføje de nødvendige primitiver, modelarkitekturer og opskriftsværktøjer for at producere SOTA-resultater til vigtige Computer Vision-opgaver:

  • Med hjælp fra Victor Fomin har jeg tilføjet vigtige manglende Data Augmentation teknikker som f.eks AugMix, Storskala jitter osv. Disse teknikker gjorde det muligt for os at lukke afstanden fra SOTA og producere bedre vægte (se nedenfor).

  • Med hjælp fra Aditya Oke, Hu Ye, Yassine Alouini og Abhijit Deo har vi tilføjet vigtige fælles byggesten som f.eks. DropBlock lag, den MLP blok, den CIOU & diU tab osv. Til sidst arbejdede jeg sammen med Shen Li for at løse et langvarigt problem på PyTorch's SyncBatchNorm lag, som påvirkede detektionsmodellerne.

  • Hu Ye med støtte fra Joao Gomes tilføjet Swin Transformer sammen med forbedrede fortrænede vægte. Jeg tilføjede EfficientNetV2 arkitektur og flere post-paper arkitektoniske optimeringer på implementering af RetinaNet, FasterRCNN og MaskRCNN.

  • Som jeg diskuterede tidligere på PyTorch-bloggen, har vi lagt en betydelig indsats på at forbedre vores fortrænede vægte ved at skabe en forbedret træningsopskrift. Dette gjorde det muligt for os at forbedre nøjagtigheden af ​​vores Klassifikationsmodeller med 3 nøjagtighedspunkter, hvilket opnår ny SOTA for forskellige arkitekturer. En lignende indsats blev udført for Detektion og segmentering, hvor vi forbedrede modellernes nøjagtighed med over 8.1 mAP i gennemsnit. Endelig arbejdede Yosua Michael M sammen med Laura Gustafson, Mannat Singhand og Aaron Adcock for at tilføje støtte til SWAG, et sæt af nye meget nøjagtige state-of-the-art præ-trænede vægte til ViT og RegNets.

Ny Multi-weight support API

Som jeg tidligere diskuteret på PyTorch-bloggen har TorchVision udvidet sin eksisterende modelbyggermekanisme til at understøtte flere præ-trænede vægte. Den nye API er fuldt bagudkompatibel, gør det muligt at instansiere modeller med forskellige vægte og giver mekanismer til at få nyttige metadata (såsom kategorier, antal parametre, metrikker osv.) og forbehandlings-inferenstransformationer af modellen. Der er en dedikeret feedback problem på Github for at hjælpe os med at stryge vores eventuelle ru kanter.

Revideret dokumentation

Nicolas Hug ledede bestræbelserne på at omstrukturere model dokumentation af TorchVision. Den nye struktur er i stand til at gøre brug af funktioner, der kommer fra Multi-weight Support API for at tilbyde en bedre dokumentation for de fortrænede vægte og deres brug i biblioteket. Massivt råb til vores fællesskabsmedlemmer for hjælper os dokumentere alle arkitekturer til tiden.

Troede, at vores detaljerede køreplan for 2022H2 endnu ikke er færdiggjort, er her nogle nøgleprojekter, som vi i øjeblikket planlægger at arbejde på:

  • Vi arbejder tæt sammen med Haoqi Fan og Christoph Feichtenhofer fra PyTorch video, for at tilføje Forbedret Multiscale Vision Transformer (MViTv2) arkitektur til TorchVision.

  • Philip Meier og Nicolas Hug arbejder på en forbedret version af Datasæt API (v2) som bruger TorchData og Data rør. Philip Meier, Victor Fomin og jeg arbejder også på at udvide vores Transformerer API (v2) for at understøtte ikke kun billeder, men også afgrænsningsfelter, segmenteringsmasker osv.

  • Endelig hjælper fællesskabet os med at holde TorchVision frisk og relevant ved at tilføje populære arkitekturer og teknikker. Lezwon Castelino arbejder i øjeblikket med Victor Fomin for at tilføje SimpleCopyPaste forøgelse. Hu Ye arbejder i øjeblikket på at tilføje DeTR arkitektur.

Hvis du har lyst til at deltage i projektet, så kig ind på vores gode første numre og hjælp søges lister. Hvis du er en garvet PyTorch/Computer Vision veteran og har du lyst til at bidrage, har vi flere kandidatprojekter til nye Operatører, tab, udbygninger , modeller.

Jeg håber du fandt artiklen interessant. Hvis du vil i kontakt, så kontakt mig LinkedIn or Twitter.

Tidsstempel:

Mere fra Datumboks