Călătoria modernizării TorchVision – Memoriile unui dezvoltator TorchVision – 3 PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Călătoria modernizării TorchVision – Memoriile unui dezvoltator TorchVision – 3

Călătoria modernizării TorchVision – Memoriile unui dezvoltator TorchVision – 3

A trecut ceva timp de când am postat ultima dată o nouă intrare în memoriile TorchVision serie. M-am gândit că anterior am împărtășit știri pe blogul oficial PyTorch și mai departe Twitter, m-am gândit că ar fi o idee bună să vorbim mai multe despre ce s-a întâmplat la ultima lansare a TorchVision (v0.12), ce urmează pe următoarea (v0.13) și care sunt planurile noastre pentru 2022H2. Ținta mea este să merg dincolo de a oferi o privire de ansamblu asupra noilor funcții și mai degrabă să ofer informații despre unde vrem să ducem proiectul în următoarele luni.

TorchVision v0.12 a fost o lansare considerabilă, cu dublă focalizare: a) actualizați politicile noastre de depreciere și contribuție la model pentru a îmbunătăți transparența și a atrage mai mulți contribuitori comunitari și b) dublarea eforturilor noastre de modernizare prin adăugarea de noi arhitecturi de model populare, seturi de date și tehnici ML.

Actualizarea politicilor noastre

Cheia pentru un proiect open-source de succes este menținerea unei comunități sănătoase și active, care să contribuie la acesta și să o conducă înainte. Astfel, un obiectiv important pentru echipa noastră este creșterea numărului de contribuții ale comunității, cu viziunea pe termen lung de a permite comunității să contribuie cu funcții mari (modele noi, tehnici ML etc.) pe lângă îmbunătățirile incrementale obișnuite (remedieri de erori/doc. , caracteristici mici etc).

Din punct de vedere istoric, chiar dacă comunitatea era dornic pentru a contribui cu astfel de caracteristici, echipa noastră a ezitat să le accepte. Blocantul cheie a fost lipsa unui model concret de contribuție și politică de depreciere. Pentru a rezolva acest lucru, Joao Gomes a lucrat cu comunitatea pentru a redacta și a publica primul nostru orientări model de contribuție care oferă claritate asupra procesului de contribuție cu noi arhitecturi, greutăți pre-antrenate și caracteristici care necesită pregătirea modelului. Mai mult, Nicolas Hug a lucrat cu dezvoltatorii de bază PyTorch pentru a formula și adopta un concret politica de depreciere.

Modificările menționate mai sus au avut efecte pozitive imediate asupra proiectului. Noua politică de contribuții ne-a ajutat să primim numeroase contribuții ale comunității pentru funcții mari (mai multe detalii mai jos), iar politica clară de depreciere ne-a permis să curățăm baza de cod, asigurându-ne totodată că TorchVision oferă garanții puternice de compatibilitate cu versiunea inversă. Echipa noastră este foarte motivată să continue să lucreze cu dezvoltatorii open-source, echipele de cercetare și creatorii de biblioteci din aval pentru a menține TorchVision relevant și actual. Dacă aveți orice feedback, comentariu sau o solicitare de funcție, vă rugăm ajungeți în afară pentru noi.

Modernizarea TorchVision

Nu este un secret pentru nimeni că pentru ultimele lansări noastre ţintă a fost să adăugăm la TorchVision toate Augmentările, Pierderile, Straturile, utilitatile de antrenament și arhitecturile noi necesare, astfel încât utilizatorii noștri să poată reproduce cu ușurință rezultatele SOTA folosind PyTorch. TorchVision v0.12 a continuat pe acel traseu:

  • Colaboratorii comunității noastre rockstar, Hu Ye și Zhiqiang Wang, au contribuit la FCOS arhitectură care este un model de detectare a obiectelor într-o etapă.

  • Nicolas Hug a adăugat suport pentru fluxul optic în TorchVision prin adăugarea PLUTĂ arhitectură.

  • Yiwen Song a adăugat suport pentru Transformator de viziune (ViT) și am adăugat ConvNext arhitectură împreună cu greutăți pre-antrenate îmbunătățite.

  • În cele din urmă cu ajutor din comunitatea noastră, am adăugat 14 clasificare nouă și 5 flux optic nou seturi de date.

  • Ca de obicei, versiunea a venit cu numeroase îmbunătățiri mai mici, remedieri de erori și îmbunătățiri ale documentației. Pentru a vedea toate noile funcții și lista colaboratorilor noștri, vă rugăm să verificați note de lansare v0.12.

TorchVision v0.13 este chiar după colț, cu lansarea sa așteptată la începutul lunii iunie. Este o versiune foarte mare, cu un număr semnificativ de funcții noi și îmbunătățiri mari ale API-ului.

Finalizarea modernizărilor și reducerea decalajului față de SOTA

Ne continuăm călătoria de modernizare a bibliotecii prin adăugarea de primitive necesare, arhitecturi de model și utilități de rețetă pentru a produce rezultate SOTA pentru sarcinile cheie de computer Vision:

  • Cu ajutorul lui Victor Fomin, am adăugat tehnici importante de creștere a datelor lipsă precum AugMix, Jitter la scară mare etc. Aceste tehnici ne-au permis să reducem decalajul față de SOTA și să producem greutăți mai bune (vezi mai jos).

  • Cu ajutorul lui Aditya Oke, Hu Ye, Yassine Alouini și Abhijit Deo, am adăugat blocuri importante comune, cum ar fi DropBlock stratul, cel MLP bloc, cel coIoU & dioU pierderi etc. În cele din urmă, am lucrat cu Shen Li pentru a remedia o problemă de lungă durată pe PyTorch SyncBatchNorm stratul care a afectat modelele de detectare.

  • Hu Ye cu sprijinul lui Joao Gomes a adăugat Swin Transformer împreună cu greutăți îmbunătățite pre-antrenate. am adaugat EfficientNetV2 arhitectură și câteva optimizări arhitecturale post-paper privind implementarea RetinaNet, FasterRCNN și MaskRCNN.

  • După cum am discutat mai devreme pe blogul PyTorch, am depus eforturi semnificative pentru a îmbunătăți greutățile noastre pre-antrenate prin crearea unui sistem îmbunătățit. reteta de antrenament. Acest lucru ne-a permis să îmbunătățim acuratețea Modele de clasificare cu 3 puncte de precizie, realizând un nou SOTA pentru diferite arhitecturi. Un efort similar a fost efectuat pentru Detectare și Segmentare, unde am îmbunătățit acuratețea modelelor cu peste 8.1 mAP în medie. În cele din urmă, Yosua Michael M a lucrat cu Laura Gustafson, Mannat Singhand și Aaron Adcock pentru a adăuga sprijin pentru STIL, un set de greutăți noi de ultimă oră, foarte precise, pre-antrenate pentru ViT și RegNets.

Nou API de suport pentru mai multe greutăți

Ca și mine discutate anterior pe blogul PyTorch, TorchVision și-a extins mecanismul existent de generare de modele pentru a suporta mai multe greutăți pre-antrenate. Noul API este complet compatibil cu înapoi, permite instanțiarea modelelor cu greutăți diferite și oferă mecanisme pentru a obține metadate utile (cum ar fi categorii, numărul de parametri, metrici etc) și transformările de inferență de preprocesare ale modelului. Există un feedback dedicat problemă pe Github pentru a ne ajuta să ne călcăm orice margini aspre.

Documentație reînnoită

Nicolas Hug a condus eforturile de restructurare documentatia modelului de TorchVision. Noua structură este capabilă să utilizeze funcțiile care vin din API-ul Multi-weight Support pentru a oferi o documentare mai bună pentru greutățile pre-antrenate și utilizarea lor în bibliotecă. Mulțumiri masive membrilor comunității noastre pentru ajutându-ne documentați toate arhitecturile la timp.

Deși foaia noastră de parcurs detaliată pentru 2022H2 nu este încă finalizată, iată câteva proiecte cheie la care intenționăm să lucrăm în prezent:

  • Lucrăm îndeaproape cu Haoqi Fan și Christoph Feichtenhofer din Video PyTorch, pentru a adăuga Transformator de viziune multiscale îmbunătățit (MViTv2) la TorchVision.

  • Philip Meier și Nicolas Hug lucrează la o versiune îmbunătățită a Datasets API (v2) care folosește TorchData și conducte de date. Philip Meier, Victor Fomin și cu mine lucrăm și la extinderea noastră Transformă API (v2) pentru a suporta nu numai imagini, ci și casete de delimitare, măști de segmentare etc.

  • În cele din urmă, comunitatea ne ajută să menținem TorchVision proaspăt și relevant, adăugând arhitecturi și tehnici populare. Lezwon Castelino lucrează în prezent cu Victor Fomin pentru a adăuga SimpleCopyPaste augmentare. Hu Ye lucrează în prezent pentru a adăuga Arhitectura DeTR.

Dacă doriți să vă implicați în proiect, vă rugăm să aruncați o privire pe site-ul nostru primele probleme bune si ajutor dorit liste. Dacă sunteți un veteran experimentat PyTorch/Computer Vision și doriți să contribuiți, avem mai multe proiecte candidate pentru noi Operatorii, pierderi, augmentări și Modele.

Sper că ați găsit articolul interesant. Daca vrei sa iei legatura, da-ma LinkedIn or Twitter.

Timestamp-ul:

Mai mult de la Datumbox