Perjalanan Modernisasi TorchVision – Memoar dari pengembang TorchVision – 3 PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Perjalanan Memodernisasi TorchVision – Memoar dari pengembang TorchVision – 3

Perjalanan Memodernisasi TorchVision – Memoar dari pengembang TorchVision – 3

Sudah lama sejak terakhir kali saya memposting entri baru di memoar TorchVision seri. Pikir, saya sebelumnya telah berbagi berita di blog resmi PyTorch dan di Twitter, saya pikir akan lebih baik untuk berbicara lebih banyak tentang apa yang terjadi pada rilis terakhir TorchVision (v0.12), apa yang akan keluar pada rilis berikutnya (v0.13) dan apa rencana kami untuk 2022H2. Target saya adalah lebih dari sekadar memberikan gambaran umum tentang fitur-fitur baru dan lebih memberikan wawasan tentang ke mana kami ingin membawa proyek ini di bulan-bulan berikutnya.

TorchVision v0.12 adalah rilis yang cukup besar dengan fokus ganda: a) memperbarui kebijakan penghentian dan kontribusi model kami untuk meningkatkan transparansi dan menarik lebih banyak kontributor komunitas dan b) menggandakan upaya modernisasi kami dengan menambahkan arsitektur model baru, kumpulan data, dan teknik ML yang populer.

Memperbarui kebijakan kami

Kunci untuk proyek sumber terbuka yang sukses adalah mempertahankan komunitas yang sehat dan aktif yang berkontribusi padanya dan mendorongnya ke depan. Jadi, tujuan penting tim kami adalah meningkatkan jumlah kontribusi komunitas, dengan visi jangka panjang untuk memungkinkan komunitas berkontribusi fitur-fitur besar (model baru, teknik ML, dll.) di atas peningkatan inkremental biasa (perbaikan bug/dokumen , fitur kecil dll).

Secara historis, meskipun komunitas itu asyik untuk menyumbangkan fitur tersebut, tim kami ragu-ragu untuk menerimanya. Penghalang utama adalah kurangnya kontribusi model konkret dan kebijakan penghentian. Untuk mengatasi hal ini, Joao Gomes bekerja sama dengan komunitas untuk menyusun dan menerbitkan pertama kami pedoman kontribusi model yang memberikan kejelasan tentang proses kontribusi arsitektur baru, bobot pra-latihan, dan fitur yang memerlukan pelatihan model. Selain itu, Nicolas Hug bekerja dengan pengembang inti PyTorch untuk merumuskan dan mengadopsi beton kebijakan penghentian.

Perubahan tersebut di atas memiliki efek positif langsung pada proyek. Kebijakan kontribusi baru membantu kami menerima banyak kontribusi komunitas untuk fitur besar (detail lebih lanjut di bawah) dan kebijakan penghentian yang jelas memungkinkan kami untuk membersihkan basis kode kami sambil tetap memastikan bahwa TorchVision menawarkan jaminan Kompatibilitas Mundur yang kuat. Tim kami sangat termotivasi untuk terus bekerja dengan pengembang sumber terbuka, tim peneliti, dan pembuat perpustakaan hilir untuk menjaga TorchVision tetap relevan dan segar. Jika Anda memiliki umpan balik, komentar, atau permintaan fitur, silakan mencapai untuk kita.

Memodernisasi TorchVision

Bukan rahasia lagi bahwa untuk beberapa rilis terakhir kami target adalah menambahkan ke TorchVision semua Augmentasi, Kerugian, Lapisan, utilitas Pelatihan, dan arsitektur baru yang diperlukan sehingga pengguna kami dapat dengan mudah mereproduksi hasil SOTA menggunakan PyTorch. TorchVision v0.12 melanjutkan rute itu:

  • Kontributor komunitas rockstar kami, Hu Ye dan Zhiqiang Wang, telah berkontribusi dalam FCOS arsitektur yang merupakan model deteksi objek satu tahap.

  • Nicolas Hug telah menambahkan dukungan aliran optik di TorchVision dengan menambahkan RAKIT Arsitektur.

  • Lagu Yiwen telah menambahkan dukungan untuk Transformator Visi (ViT) dan saya telah menambahkan KonvNeXt arsitektur bersama dengan peningkatan bobot pra-terlatih.

  • Akhirnya dengan membantu komunitas kami, kami telah menambahkan 14 klasifikasi baru dan 5 aliran optik baru dataset.

  • Seperti biasa, rilis ini hadir dengan banyak peningkatan yang lebih kecil, perbaikan bug, dan peningkatan dokumentasi. Untuk melihat semua fitur baru dan daftar kontributor kami, silakan periksa v0.12 catatan rilis.

TorchVision v0.13 sudah dekat, dengan rilis yang diharapkan pada awal Juni. Ini adalah rilis yang sangat besar dengan sejumlah besar fitur baru dan peningkatan API yang besar.

Mengakhiri Modernisasi dan menutup celah dari SOTA

Kami melanjutkan perjalanan memodernisasi perpustakaan dengan menambahkan primitif, arsitektur model, dan utilitas resep yang diperlukan untuk menghasilkan hasil SOTA untuk tugas-tugas Computer Vision utama:

  • Dengan bantuan Victor Fomin, saya telah menambahkan teknik Augmentasi Data yang hilang seperti Campuran Agustus, Jitter Skala Besar dll. Teknik ini memungkinkan kami untuk menutup celah dari SOTA dan menghasilkan bobot yang lebih baik (lihat di bawah).

  • Dengan bantuan Aditya Oke, Hu Ye, Yassine Alouini dan Abhijit Deo, kami telah menambahkan blok bangunan umum yang penting seperti JatuhkanBlok lapisan, itu MLP blok, itu cIoU & dIoU kehilangan dll. Akhirnya saya bekerja dengan Shen Li untuk memperbaiki masalah lama di PyTorch SyncBatchNorma lapisan yang mempengaruhi model deteksi.

  • Hu Ye dengan dukungan Joao Gomes menambahkan trafo babi bersama dengan peningkatan bobot pra-terlatih. saya menambahkan EfisienNetV2 arsitektur dan beberapa optimasi arsitektur post-paper pada implementasi RetinaNet, FasterRCNN dan MaskRCNN.

  • Seperti yang saya bahas sebelumnya di blog PyTorch, kami telah berupaya keras untuk meningkatkan bobot pra-latihan kami dengan membuat bobot yang lebih baik. resep pelatihan. Ini memungkinkan kami untuk meningkatkan akurasi kami Model klasifikasi dengan 3 poin akurasi, mencapai SOTA baru untuk berbagai arsitektur. Upaya serupa dilakukan untuk Deteksi dan Segmentasi, di mana kami meningkatkan akurasi model rata-rata lebih dari 8.1 mAP. Akhirnya Yosua Michael M bekerja sama dengan Laura Gustafson, Mannat Singhand dan Aaron Adcock untuk menambah dukungan Barang curian, satu set bobot baru yang sangat akurat yang telah dilatih sebelumnya untuk ViT dan RegNets.

API dukungan Multi-berat baru

Seperti saya dibahas sebelumnya di blog PyTorch, TorchVision telah memperluas mekanisme pembuat model yang ada untuk mendukung beberapa bobot yang telah dilatih sebelumnya. API baru sepenuhnya kompatibel ke belakang, memungkinkan untuk membuat instance model dengan bobot berbeda dan menyediakan mekanisme untuk mendapatkan meta-data yang berguna (seperti kategori, jumlah parameter, metrik, dll.) dan transformasi inferensi prapemrosesan model. Ada umpan balik khusus masalah di Github untuk membantu kami menyetrika tepi kasar kami.

Dokumentasi yang Dirombak

Nicolas Hug memimpin upaya restrukturisasi dokumentasi model dari Torch Vision. Struktur baru ini dapat memanfaatkan fitur yang berasal dari Multi-weight Support API untuk menawarkan dokumentasi yang lebih baik untuk bobot yang telah dilatih sebelumnya dan penggunaannya di library. Teriakan besar-besaran kepada anggota komunitas kami untuk membantu kami mendokumentasikan semua arsitektur tepat waktu.

Meskipun peta jalan terperinci kami untuk 2022H2 belum selesai, berikut adalah beberapa proyek utama yang sedang kami rencanakan untuk dikerjakan:

  • Kami bekerja sama dengan Haoqi Fan dan Christoph Feichtenhofer dari Video PyTorch, untuk menambahkan Transformator Visi Multiskala yang Ditingkatkan (MViTv2) arsitektur ke TorchVision.

  • Philip Meier dan Nicolas Hug sedang mengerjakan versi yang lebih baik dari API kumpulan data (v2) yang menggunakan TorchData dan pipa Data. Philip Meier, Victor Fomin, dan saya juga sedang berupaya memperluas Mengubah API (v2) untuk mendukung tidak hanya gambar tetapi juga kotak pembatas, topeng segmentasi, dll.

  • Terakhir, komunitas membantu kami menjaga TorchVision tetap segar dan relevan dengan menambahkan arsitektur dan teknik populer. Lezwon Castelino saat ini bekerja dengan Victor Fomin untuk menambahkan SederhanaCopyPaste augmentasi. Hu Ye saat ini sedang bekerja untuk menambahkan arsitektur DeTR.

Jika Anda ingin terlibat dengan proyek ini, silakan lihat kami masalah pertama yang bagus dan bantuan yang diinginkan daftar. Jika Anda seorang veteran PyTorch/Computer Vision berpengalaman dan Anda ingin berkontribusi, kami memiliki beberapa kandidat proyek untuk proyek baru operator, kerugian, augmentations dan model.

Saya harap Anda menemukan artikel itu menarik. Jika Anda ingin menghubungi saya, hubungi saya LinkedIn or Twitter.

Stempel Waktu:

Lebih dari kotak data