Apa yang Baru
Perkenalan
Model
Fitur
Hasil
Memulai (Dokumentasi)
Latih, Validasi, Skrip Inferensi
Sumber Daya PyTorch yang Luar Biasa
Lisensi
Mengutip
Bersihkan penggunaan amp obor untuk menghindari panggilan khusus cuda, gabungkan dukungan untuk perangkat Ascend (NPU) dari MengqingCao yang seharusnya berfungsi sekarang di PyTorch 2.5 dengan fitur pemuatan otomatis ekstensi perangkat baru. Menguji Intel Arc (XPU) di Pytorch 2.5 juga dan (kebanyakan) berfungsi.
Memperbaiki kesalahan saat mengimpor dari jalur yang tidak digunakan lagi timm.models.registry
, meningkatkan prioritas peringatan penghentian yang ada agar terlihat
Bobot port InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) ke timm
sebagai vit_intern300m_patch14_448
Pra-aktivasi (ResNetV2) versi defs model ResNet 18/18d/34/34d ditambahkan berdasarkan permintaan (bobot tertunda)
Rilis 1.0.10
MambaOut (https://github.com/yuweihao/MambaOut) model & bobot ditambahkan. Pandangan kurang ajar tentang model visi SSM tanpa SSM (pada dasarnya ConvNeXt tanpa gating). Campuran anak timbangan asli + variasi & anak timbangan khusus.
model | img_size | teratas1 | 5 teratas | param_count |
---|---|---|---|---|
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k | 384 | 87.506 | 98.428 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 288 | 86.912 | 98.236 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 224 | 86.632 | 98.156 | 101.66 |
mambaout_base_tall_rw.sw_e500_in1k | 288 | 84.974 | 97.332 | 86.48 |
mambaout_base_wide_rw.sw_e500_in1k | 288 | 84.962 | 97.208 | 94,45 |
mambaout_base_short_rw.sw_e500_in1k | 288 | 84.832 | 97.27 | 88.83 |
mambaout_base.in1k | 288 | 84.72 | 96,93 | 84.81 |
mambaout_small_rw.sw_e450_in1k | 288 | 84.598 | 97.098 | 48.5 |
mambaout_small.in1k | 288 | 84.5 | 96.974 | 48.49 |
mambaout_base_wide_rw.sw_e500_in1k | 224 | 84.454 | 96.864 | 94,45 |
mambaout_base_tall_rw.sw_e500_in1k | 224 | 84.434 | 96.958 | 86.48 |
mambaout_base_short_rw.sw_e500_in1k | 224 | 84.362 | 96.952 | 88.83 |
mambaout_base.in1k | 224 | 84.168 | 96,68 | 84.81 |
mambaout_small.in1k | 224 | 84.086 | 96.63 | 48.49 |
mambaout_small_rw.sw_e450_in1k | 224 | 84.024 | 96.752 | 48.5 |
mambaout_tiny.in1k | 288 | 83.448 | 96.538 | 26.55 |
mambaout_tiny.in1k | 224 | 82.736 | 96.1 | 26.55 |
mambaout_kobe.in1k | 288 | 81.054 | 95.718 | 9.14 |
mambaout_kobe.in1k | 224 | 79.986 | 94.986 | 9.14 |
mambaout_femto.in1k | 288 | 79.848 | 95.14 | 7.3 |
mambaout_femto.in1k | 224 | 78,87 | 94.408 | 7.3 |
SigLIP SO400M ViT menyempurnakan ImageNet-1k @ 378x378, menambahkan opsi 378x378 untuk model SigLIP 384x384 yang ada
vit_so400m_patch14_siglip_378.webli_ft_in1k - 89,42 teratas-1
vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
Encoder ViT SigLIP SO400M dari varian multibahasa (i18n) terbaru, patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). Pembaruan OpenCLIP tertunda.
Tambahkan dua model & bobot ConvNeXt 'Zepto' (satu dengan batang tumpang tindih dan satu dengan batang tempel). Menggunakan RMSNorm, lebih kecil dari 'Atto' sebelumnya, 2,2 juta parameter.
convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73,20 teratas-1 @ 224
convnext_zepto_rms.ra4_e3600_r224_in1k - 72,81 @ 224
Tambahkan serangkaian model pengujian kecil untuk pengujian unit yang lebih baik dan aplikasi khusus dengan sumber daya rendah (https://huggingface.co/blog/rwightman/timm-tiny-test)
Tambahkan model MobileNetV4-Conv-Small (0,5x) (https://huggingface.co/posts/rwightman/793053396198664)
mobilenetv4_conv_small_050.e3000_r224_in1k - 65,81 teratas-1 @ 256, 64,76 @ 224
Tambahkan varian MobileNetV3-Besar yang dilatih dengan resep MNV4 Kecil
mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81,81 @ 320, 80,94 @ 256
mobilenetv3_large_100.ra4_e3600_r224_in1k - 77,16 @ 256, 76,31 @ 224
Model SBB ViT yang diperbarui yang dilatih pada ImageNet-12k dan disempurnakan pada ImageNet-1k, menantang sejumlah model yang jauh lebih besar dan lebih lambat
model | teratas1 | 5 teratas | param_count | img_size |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 87.438 | 98.256 | 64.11 | 384 |
vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 86.608 | 97.934 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 86.594 | 98.02 | 60.4 | 384 |
vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 85.734 | 97.61 | 60.4 | 256 |
Bobot MobileNet-V1 1.25, EfficientNet-B1, & ResNet50-D dengan resep tantangan dasar MNV4
model | teratas1 | 5 teratas | param_count | img_size |
---|---|---|---|---|
resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
efisiennet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
efisiennet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
Tambahkan dukungan lengkungan tulang punggung & pemuatan beban SAM2 (HieraDet).
Tambahkan Hiera Bobot kecil yang dilatih dengan penyematan pos abswin pada in12k & disetel dengan baik pada 1k
model | teratas1 | 5 teratas | param_count |
---|---|---|---|
hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k | 84.912 | 97.260 | 35.01 |
hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k | 84.560 | 97.106 | 35.01 |
Tambahkan RDNet ('DenseNets Reloaded', https://arxiv.org/abs/2403.19588), terima kasih Donghyun Kim
Tambahkan bobot mobilenet_edgetpu_v2_m
dengan resep berbasis ra4
mnv4-kecil. 80,1% teratas-1 @ 224 dan 80,7 @ 256.
Rilis 1.0.8
Lebih banyak bobot MobileNet-v4, pra-pelatihan ImageNet-12k dengan penyempurnaan, dan model ConvLarge anti-alias
model | teratas1 | top1_err | 5 teratas | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84,99 | 15.01 | 97.294 | 2.706 | 32.59 | 544 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.772 | 15.228 | 97.344 | 2.656 | 32.59 | 480 |
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.64 | 15.36 | 97.114 | 2.886 | 32.59 | 448 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.314 | 15.686 | 97.102 | 2.898 | 32.59 | 384 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.824 | 16.176 | 96.734 | 3.266 | 32.59 | 480 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.244 | 16.756 | 96.392 | 3.608 | 32.59 | 384 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82,99 | 17.01 | 96,67 | 3.33 | 11.07 | 320 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.364 | 17.636 | 96.256 | 3.744 | 11.07 | 256 |
Tantangan dasar MobileNet-V1 dan EfficientNet-B0 yang mengesankan (https://huggingface.co/blog/rwightman/mobilenet-baselines)
model | teratas1 | top1_err | 5 teratas | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
efisiennet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
efisiennet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
Prototipe set_input_size()
ditambahkan ke model vit dan swin v1/v2 untuk memungkinkan perubahan ukuran gambar, ukuran patch, ukuran jendela setelah pembuatan model.
Peningkatan dukungan di swin untuk penanganan ukuran yang berbeda, selain set_input_size
, argumen always_partition
dan strict_img_size
telah ditambahkan ke __init__
untuk memungkinkan batasan ukuran input yang lebih fleksibel
Perbaiki info indeks pesanan untuk pembungkus fitur 'Pengambil' perantara, periksa atau rentang indeks untuk hal yang sama.
Tambahkan beberapa model param <0,5M tiny
untuk pengujian yang sebenarnya dilatih di ImageNet-1k
model | teratas1 | top1_err | 5 teratas | top5_err | param_count | img_size | potong_pct |
---|---|---|---|---|---|---|---|
test_efisiennet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0,36 | 192 | 1.0 |
tes_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0,46 | 192 | 1.0 |
test_efisiennet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0,36 | 160 | 0,875 |
tes_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0,46 | 160 | 0,875 |
tes_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0,37 | 192 | 1.0 |
tes_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0,37 | 160 | 0,875 |
Perbaiki vit reg token init, terima kasih Janji
Perbaikan lain-lain
3 lagi bobot hyrid MobileNetV4 dengan skema init bobot MQA yang berbeda
model | teratas1 | top1_err | 5 teratas | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 84.356 | 15.644 | 96.892 | 3.108 | 37.76 | 448 |
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 83.990 | 16.010 | 96.702 | 3.298 | 37.76 | 384 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 83.394 | 16.606 | 96.760 | 3.240 | 11.07 | 448 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 82.968 | 17.032 | 96.474 | 3.526 | 11.07 | 384 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 82.492 | 17.508 | 96.278 | 3.722 | 11.07 | 320 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 81.446 | 18.554 | 95.704 | 4.296 | 11.07 | 256 |
pemuatan beban florence2 dalam model DaViT
Model MobileNetV4 dan kumpulan beban timm
yang dilatih awal ditambahkan:
model | teratas1 | top1_err | 5 teratas | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.e600_r384_in1k | 84.266 | 15.734 | 96.936 | 3.064 | 37.76 | 448 |
mobilenetv4_hybrid_large.e600_r384_in1k | 83.800 | 16.200 | 96.770 | 3.230 | 37.76 | 384 |
mobilenetv4_conv_large.e600_r384_in1k | 83.392 | 16.608 | 96.622 | 3.378 | 32.59 | 448 |
mobilenetv4_conv_large.e600_r384_in1k | 82.952 | 17.048 | 96.266 | 3.734 | 32.59 | 384 |
mobilenetv4_conv_large.e500_r256_in1k | 82.674 | 17.326 | 96.31 | 3.69 | 32.59 | 320 |
mobilenetv4_conv_large.e500_r256_in1k | 81.862 | 18.138 | 95,69 | 4.31 | 32.59 | 256 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 81.276 | 18.724 | 95.742 | 4.258 | 11.07 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 80.858 | 19.142 | 95.768 | 4.232 | 9.72 | 320 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 80.442 | 19.558 | 95.38 | 4.62 | 11.07 | 224 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 80.142 | 19.858 | 95.298 | 4.702 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 79.928 | 20.072 | 95.184 | 4.816 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.808 | 20.192 | 95.186 | 4.814 | 9.72 | 256 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 79.438 | 20.562 | 94.932 | 5.068 | 9.72 | 224 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.094 | 20.906 | 94,77 | 5.23 | 9.72 | 224 |
mobilenetv4_conv_small.e2400_r224_in1k | 74.616 | 25.384 | 92.072 | 7.928 | 3.77 | 256 |
mobilenetv4_conv_small.e1200_r224_in1k | 74.292 | 25.708 | 92.116 | 7.884 | 3.77 | 256 |
mobilenetv4_conv_small.e2400_r224_in1k | 73.756 | 26.244 | 91.422 | 8.578 | 3.77 | 224 |
mobilenetv4_conv_small.e1200_r224_in1k | 73.454 | 26.546 | 91.34 | 8.66 | 3.77 | 224 |
Apple MobileCLIP (https://arxiv.org/pdf/2311.17049, FastViT dan ViT-B) dukungan model menara gambar & bobot ditambahkan (bagian dari dukungan OpenCLIP).
ViTamin (https://arxiv.org/abs/2404.02132) Model menara gambar CLIP & bobot ditambahkan (bagian dari dukungan OpenCLIP).
OpenAI CLIP Memodifikasi pemodelan menara gambar ResNet & dukungan bobot (melalui ByobNet). Refaktor AttentionPool2d.
Mendukung pemuatan bobot jax PaliGemma ke dalam model SigLIP ViT dengan pengumpulan rata-rata.
Tambahkan model Hiera dari Meta (https://github.com/facebookresearch/hiera).
Tambahkan normalize=
flag untuk transorm, kembalikan torch.Tensor yang tidak dinormalisasi dengan dytpe asli (untuk chug
)
Rilis versi 1.0.3
Searching for Better ViT Baselines (For the GPU Poor)
bobot dan varian vit dirilis. Menjelajahi bentuk model antara Tiny dan Base.
model | teratas1 | 5 teratas | param_count | img_size |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 86.202 | 97.874 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 85.418 | 97.48 | 60.4 | 256 |
vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k | 84.322 | 96.812 | 63,95 | 256 |
vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k | 83.906 | 96.684 | 60.23 | 256 |
vit_base_patch16_rope_reg1_gap_256.sbb_in1k | 83.866 | 96,67 | 86.43 | 256 |
vit_medium_patch16_rope_reg1_gap_256.sbb_in1k | 83.81 | 96.824 | 38.74 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in1k | 83.706 | 96.616 | 60.4 | 256 |
vit_betwixt_patch16_reg1_gap_256.sbb_in1k | 83.628 | 96.544 | 60.4 | 256 |
vit_medium_patch16_reg4_gap_256.sbb_in1k | 83.47 | 96.622 | 38.88 | 256 |
vit_medium_patch16_reg1_gap_256.sbb_in1k | 83.462 | 96.548 | 38.88 | 256 |
vit_little_patch16_reg4_gap_256.sbb_in1k | 82.514 | 96.262 | 22.52 | 256 |
vit_wee_patch16_reg1_gap_256.sbb_in1k | 80.256 | 95.360 | 13.42 | 256 |
vit_pwee_patch16_reg1_gap_256.sbb_in1k | 80.072 | 95.136 | 15.25 | 256 |
vit_mediumd_patch16_reg4_gap_256.sbb_in12k | T/A | T/A | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k | T/A | T/A | 60.4 | 256 |
AttentionExtract helper ditambahkan untuk mengekstrak peta perhatian dari model timm
. Lihat contoh di #1232 (komentar)
forward_intermediates()
API disempurnakan dan ditambahkan ke lebih banyak model termasuk beberapa ConvNet yang memiliki metode ekstraksi lain.
1017 dari 1047 arsitektur model mendukung features_only=True
. 34 arsitektur lainnya dapat didukung tetapi berdasarkan permintaan prioritas.
Hapus fungsi beranotasi torch.jit.script termasuk aktivasi JIT lama. Benturan dengan dinamo dan kinerja dinamo jauh lebih baik bila digunakan.
Mempersiapkan rilis 1.0 yang sudah lama tertunda, keadaan sudah stabil untuk sementara waktu sekarang.
Fitur penting yang telah hilang untuk sementara waktu, features_only=True
untuk model ViT dengan status tersembunyi datar atau tata letak modul non-std (sejauh ini mencakup 'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'
)
Dukungan fitur di atas dicapai melalui API forward_intermediates()
baru yang dapat digunakan dengan modul pembungkus fitur atau langsung.
model = timm.create_model('vit_base_patch16_224')final_feat, perantara = model.forward_intermediates(input) output = model.forward_head(final_feat) # pooling + classifier headprint(final_feat.shape)torch.Size([2, 197, 768])untuk f di perantara:print(f.shape)torch.Size([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran ([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([2, 768, 14, 14])obor.Ukuran([ 2, 768, 14, 14])print(output.shape)torch.Ukuran([2, 1000])
model = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, feature_only=True, out_indices=(-3, -2,))output = model(torch.randn(2, 3, 512, 512)) untuk o dalam keluaran: print(o.shape) obor.Ukuran([2, 768, 32, 32])obor.Ukuran([2, 768, 32, 32])
Bobot menara visi TinyCLIP ditambahkan, terima kasih Thien Tran
Model ViT berikutnya ditambahkan. Diadaptasi dari https://github.com/bytedance/Next-ViT
Model HGNet dan PP-HGNetV2 ditambahkan. Diadaptasi dari https://github.com/PaddlePaddle/PaddleClas oleh SeeFun
Menghapus setup.py, dipindahkan ke build berbasis pyproject.toml yang didukung oleh PDM
Tambahkan impl model EMA yang diperbarui menggunakan _for_each untuk mengurangi overhead
Mendukung argumen perangkat dalam skrip kereta untuk perangkat non GPU
Perbaikan lain-lain dan tambahan kecil
Versi Python yang didukung minimum meningkat menjadi 3.8
Rilis 0.9.16
Kumpulan data & transformasi refactoring
Dukungan kumpulan data streaming HuggingFace (dapat diubah) ( --dataset hfids:org/dataset
)
Penyesuaian pembungkus kumpulan data web untuk pengambilan info terpisah yang lebih baik, dapat mengambil pemisahan secara otomatis dari kumpulan data web hub HF yang didukung
datasets
HF dan streaming pembungkus kumpulan data web dari hub HF dengan unggahan ImageNet timm
terbaru ke https://huggingface.co/timm
Jadikan input & kunci kolom/bidang target konsisten di seluruh kumpulan data dan teruskan melalui argumen
Dukungan monokrom penuh saat menggunakan misalnya: --input-size 1 224 224
atau --in-chans 1
, mengatur konversi gambar PIL dengan tepat dalam kumpulan data
Memperbaiki beberapa transformasi potong & ubah ukuran alternatif (ResizeKeepRatio, RandomCropOrPad, dll) untuk digunakan dalam proyek AI dokumen PixParse
Tambahkan masalah jitter warna gaya SimCLR bersama dengan opsi skala abu-abu dan gaussian blur ke augmentasi dan argumen
Izinkan kereta tanpa set validasi ( --val-split ''
) dalam skrip kereta
Tambahkan --bce-sum
(jumlah melebihi kelas redup) dan --bce-pos-weight
(bobot positif) untuk pelatihan karena merupakan perubahan kerugian BCE yang umum. Saya sering melakukan pengkodean yang sulit
Menambahkan model EfficientViT-Large, terima kasih SeeFun
Perbaiki kompatibilitas Python 3.7, akan segera menghentikan dukungannya
Perbaikan lain-lain
Rilis 0.9.12
Menambahkan fleksibilitas yang signifikan untuk model timm berbasis Hugging Face Hub melalui entri konfigurasi model_args
. model_args
akan diteruskan sebagai kwarg ke model saat pembuatan.
Lihat contoh di https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json
Penggunaan: #2035
Memperbarui file imagenet eval dan test set csv dengan model terbaru
pengetikan vision_transformer.py
dan pembersihan dokumen oleh Laureηt
rilis 0.9.11
Bobot DFN (Jaringan Penyaringan Data) dan MetaCLIP ViT ditambahkan
DINOv2 'mendaftarkan' bobot model ViT ditambahkan (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
Tambahkan varian quickgelu
ViT untuk bobot OpenAI, DFN, MetaCLIP yang menggunakannya (kurang efisien)
Peningkatan pengetikan ditambahkan ke ResNet, MobileNet-v3 berkat Aryan
ImageNet-12k disempurnakan (dari LAION-2B CLIP) convnext_xxlarge
rilis 0.9.9
Bobot menara gambar SigLIP didukung di vision_transformer.py
.
Potensi besar untuk penyempurnaan dan penggunaan fitur hilir.
Dukungan 'daftar' eksperimental dalam model vit sesuai Vision Transformers Need Register
RepViT yang diperbarui dengan rilis bobot baru. Terima kasih Wangao
Tambahkan dukungan pengubahan ukuran patch (pada beban beban yang telah dilatih sebelumnya) ke model Swin
Rilis 0.9.8 tertunda
TinyViT ditambahkan oleh SeeFun
Perbaiki EfficientViT (MIT) untuk menggunakan torch.autocast sehingga berfungsi kembali ke PT 1.10
rilis 0.9.7
Py T orch Im age Models ( timm
) adalah kumpulan model gambar, lapisan, utilitas, pengoptimal, penjadwal, pemuat/augmentasi data, dan skrip pelatihan/validasi referensi yang bertujuan untuk menyatukan berbagai macam model SOTA dengan kemampuan untuk mereproduksi hasil pelatihan ImageNet.
Karya banyak orang lain hadir di sini. Saya telah mencoba memastikan semua materi sumber diakui melalui tautan ke github, makalah arxiv, dll di README, dokumentasi, dan dokumen kode. Tolong beri tahu saya jika saya melewatkan sesuatu.
Semua kelompok arsitektur model menyertakan varian dengan bobot yang telah dilatih sebelumnya. Ada varian model tertentu tanpa bobot apa pun, ini BUKAN bug. Bantuan untuk melatih beban baru atau lebih baik selalu dihargai.
Menggabungkan Transformer Bersarang - https://arxiv.org/abs/2105.12723
BEiT - https://arxiv.org/abs/2106.08254
Transfer Besar ResNetV2 (BiT) - https://arxiv.org/abs/1912.11370
Transformer Kemacetan - https://arxiv.org/abs/2101.11605
CaiT (Perhatian Kelas dalam Image Transformers) - https://arxiv.org/abs/2103.17239
CoaT (Transformer Gambar Perhatian Konv-Skala Bersama) - https://arxiv.org/abs/2104.06399
CoAtNet (Konvolusi dan Perhatian) - https://arxiv.org/abs/2106.04803
KonvNeXt - https://arxiv.org/abs/2201.03545
KonvNeXt-V2 - http://arxiv.org/abs/2301.00808
ConViT (Transformator Visi Bias Induktif Konvolusional Lembut)- https://arxiv.org/abs/2103.10697
CspNet (Jaringan Parsial Lintas Tahap) - https://arxiv.org/abs/1911.11929
DeiT - https://arxiv.org/abs/2012.12877
DeiT-III - https://arxiv.org/pdf/2204.07118.pdf
DenseNet - https://arxiv.org/abs/1608.06993
DLA - https://arxiv.org/abs/1707.06484
DPN (Jaringan Jalur Ganda) - https://arxiv.org/abs/1707.01629
EdgeNeXt - https://arxiv.org/abs/2206.10589
EfficientFormer - https://arxiv.org/abs/2206.01191
EfficientNet (Keluarga MBConvNet)
EfficientNet NoisyStudent (B0-B7, L2) - https://arxiv.org/abs/1911.04252
EfficientNet AdvProp (B0-B8) - https://arxiv.org/abs/1911.09665
EfficientNet (B0-B7) - https://arxiv.org/abs/1905.11946
EfficientNet-EdgeTPU (S, M, L) - https://ai.googleblog.com/2019/08/efisiennet-edgetpu-creating.html
EfficientNet V2 - https://arxiv.org/abs/2104.00298
FBNet-C - https://arxiv.org/abs/1812.03443
CampuranNet - https://arxiv.org/abs/1907.09595
MNASNet B1, A1 (Squeeze-Excite), dan Kecil - https://arxiv.org/abs/1807.11626
MobileNet-V2 - https://arxiv.org/abs/1801.04381
NAS Jalur Tunggal - https://arxiv.org/abs/1904.02877
TinyNet - https://arxiv.org/abs/2010.14819
EfisienViT (MIT) - https://arxiv.org/abs/2205.14756
EfisienViT (MSRA) - https://arxiv.org/abs/2305.07027
EVA - https://arxiv.org/abs/2211.07636
EVA-02 - https://arxiv.org/abs/2303.11331
FastViT - https://arxiv.org/abs/2303.14189
FlexiViT - https://arxiv.org/abs/2212.08013
FocalNet (Jaringan Modulasi Fokus) - https://arxiv.org/abs/2203.11926
GCViT (Transformasi Visi Konteks Global) - https://arxiv.org/abs/2206.09959
GhostNet - https://arxiv.org/abs/1911.11907
GhostNet-V2 - https://arxiv.org/abs/2211.12905
gMLP - https://arxiv.org/abs/2105.08050
Jaringan Efisien GPU - https://arxiv.org/abs/2006.14090
Halo Nets - https://arxiv.org/abs/2103.12731
HGNet / HGNet-V2 - TBD
HRNet - https://arxiv.org/abs/1908.07919
InceptionNeXt - https://arxiv.org/abs/2303.16900
Awal-V3 - https://arxiv.org/abs/1512.00567
Inception-ResNet-V2 dan Inception-V4 - https://arxiv.org/abs/1602.07261
Jaringan Lambda - https://arxiv.org/abs/2102.08602
LeViT (Vision Transformer dalam Pakaian ConvNet) - https://arxiv.org/abs/2104.01136
MaxViT (Transformator Visi Multi-Sumbu) - https://arxiv.org/abs/2204.01697
MetaFormer (PoolFormer-v2, ConvFormer, CAFormer) - https://arxiv.org/abs/2210.13452
MLP-Mixer - https://arxiv.org/abs/2105.01601
MobileCLIP - https://arxiv.org/abs/2311.17049
MobileNet-V3 (MBConvNet dengan Kepala Efisien) - https://arxiv.org/abs/1905.02244
FBNet-V3 - https://arxiv.org/abs/2006.02049
HardCoRe-NAS - https://arxiv.org/abs/2102.11646
LCNet - https://arxiv.org/abs/2109.15099
MobileNetV4 - https://arxiv.org/abs/2404.10518
MobileOne - https://arxiv.org/abs/2206.04040
MobileViT - https://arxiv.org/abs/2110.02178
MobileViT-V2 - https://arxiv.org/abs/2206.02680
MViT-V2 (Peningkatan Transformator Penglihatan Multiskala) - https://arxiv.org/abs/2112.01526
NASNet-A - https://arxiv.org/abs/1707.07012
Sarang - https://arxiv.org/abs/2105.12723
Berikutnya-ViT - https://arxiv.org/abs/2207.05501
NFNet-F - https://arxiv.org/abs/2102.06171
NF-RegNet / NF-ResNet - https://arxiv.org/abs/2101.08692
PNasNet - https://arxiv.org/abs/1712.00559
PoolFormer (MetaFormer) - https://arxiv.org/abs/2111.11418
Vision Transformer (PiT) berbasis pooling - https://arxiv.org/abs/2103.16302
PVT-V2 (Peningkatan Transformator Penglihatan Piramida) - https://arxiv.org/abs/2106.13797
RDNet (DenseNets Dimuat Ulang) - https://arxiv.org/abs/2403.19588
RegNet - https://arxiv.org/abs/2003.13678
RegNetZ - https://arxiv.org/abs/2103.06877
RepVGG - https://arxiv.org/abs/2101.03697
RepGhostNet - https://arxiv.org/abs/2211.06088
RepViT - https://arxiv.org/abs/2307.09283
ResMLP - https://arxiv.org/abs/2105.03404
ResNet/ResNeXt
ResNet (v1b/v1.5) - https://arxiv.org/abs/1512.03385
ResNeXt - https://arxiv.org/abs/1611.05431
'Bag of Tricks' / Variasi Gluon C, D, E, S - https://arxiv.org/abs/1812.01187
Instagram dengan pengawasan lemah (WSL) telah dilatih sebelumnya / ImageNet disetel ResNeXt101 - https://arxiv.org/abs/1805.00932
Semi-supervised (SSL) / Semi-weakly Supervised (SWSL) ResNet/ResNeXts - https://arxiv.org/abs/1905.00546
ECA-Net (ECAResNet) - https://arxiv.org/abs/1910.03151v4
Jaringan Pemerasan dan Eksitasi (SEResNet) - https://arxiv.org/abs/1709.01507
ResNet-RS - https://arxiv.org/abs/2103.07579
Res2Net - https://arxiv.org/abs/1904.01169
ResNeSt - https://arxiv.org/abs/2004.08955
ReXNet - https://arxiv.org/abs/2007.00992
SelecSLS - https://arxiv.org/abs/1907.00837
Jaringan Kernel Selektif - https://arxiv.org/abs/1903.06586
Sequencer2D - https://arxiv.org/abs/2205.01972
Putar S3 (AutoFormerV2) - https://arxiv.org/abs/2111.14725
Transformator Babi - https://arxiv.org/abs/2103.14030
Swin Transformer V2 - https://arxiv.org/abs/2111.09883
Transformer-iN-Transformer (TNT) - https://arxiv.org/abs/2103.00112
TResNet - https://arxiv.org/abs/2003.13630
Kembar (Perhatian Spasial dalam Vision Transformers) - https://arxiv.org/pdf/2104.13840.pdf
Visformer - https://arxiv.org/abs/2104.12533
Transformator Visi - https://arxiv.org/abs/2010.11929
Vitamin - https://arxiv.org/abs/2404.02132
VOLO (Visi Outlooker) - https://arxiv.org/abs/2106.13112
VovNet V2 dan V1 - https://arxiv.org/abs/1911.06667
Xsepsi - https://arxiv.org/abs/1610.02357
Xception (Dimodifikasi Selaras, Gluon) - https://arxiv.org/abs/1802.02611
Xception (Dimodifikasi Selaras, TF) - https://arxiv.org/abs/1802.02611
XCiT (Transformer Gambar Lintas Kovarians) - https://arxiv.org/abs/2106.09681
Pengoptimal yang disertakan tersedia melalui metode pabrik create_optimizer
/ create_optimizer_v2
:
adabelief
merupakan implementasi AdaBelief yang diadaptasi dari https://github.com/juntang-zhuang/Adabelief-Optimizer - https://arxiv.org/abs/2010.07468
adafactor
diadaptasi dari impl FAIRSeq - https://arxiv.org/abs/1804.04235
adahessian
oleh David Samuel - https://arxiv.org/abs/2006.00719
adamp
dan sgdp
oleh Naver ClovAI - https://arxiv.org/abs/2006.08217
adan
merupakan implementasi Adan yang diadaptasi dari https://github.com/sail-sg/Adan - https://arxiv.org/abs/2208.06677
lamb
implementasi Lamb dan LambC (dengan trust-clipping) dibersihkan dan dimodifikasi untuk mendukung penggunaan dengan XLA - https://arxiv.org/abs/1904.00962
lars
merupakan implementasi LARS dan LARC (dengan trust-clipping) - https://arxiv.org/abs/1708.03888
lion
dan implementasi Lion diadaptasi dari https://github.com/google/automl/tree/master/lion - https://arxiv.org/abs/2302.06675
lookahead
diadaptasi dari impl oleh Liam - https://arxiv.org/abs/1907.08610
madgrad
- dan implementasi MADGRAD diadaptasi dari https://github.com/facebookresearch/madgrad - https://arxiv.org/abs/2101.11075
nadam
merupakan implementasi dari Adam dengan momentum Nesterov
nadamw
merupakan implementasi AdamW (Adam dengan penurunan berat badan yang dipisahkan) dengan momentum Nesterov. Impl yang disederhanakan berdasarkan https://github.com/mlcommons/algorithmic-efficiency
novograd
oleh Masashi Kimura - https://arxiv.org/abs/1905.11286
radam
oleh Liyuan Liu - https://arxiv.org/abs/1908.03265
rmsprop_tf
diadaptasi dari PyTorch RMSProp sendiri. Mereproduksi perilaku Tensorflow RMSProp yang jauh lebih baik
sgdw
dan penerapan SGD dengan penurunan berat badan yang dipisahkan
fused
pengoptimal berdasarkan nama dengan NVIDIA Apex terinstal
bits
pengoptimal berdasarkan nama dengan BitsAndBytes diinstal
Penghapusan Acak dari Zhun Zhong - https://arxiv.org/abs/1708.04896)
Pencampuran - https://arxiv.org/abs/1710.09412
CutMix - https://arxiv.org/abs/1905.04899
AutoAugment (https://arxiv.org/abs/1805.09501) dan RandAugment (https://arxiv.org/abs/1909.13719) Konfigurasi ImageNet yang dimodelkan setelah impl untuk pelatihan EfficientNet (https://github.com/tensorflow/tpu/ gumpalan/master/models/official/efisiennet/autoaugment.py)
AugMix dengan kehilangan JSD, JSD dengan clean + dukungan pencampuran tambahan juga berfungsi dengan AutoAugment dan RandAugment - https://arxiv.org/abs/1912.02781
SplitBachNorm - memungkinkan pemisahan lapisan norma batch antara data bersih dan data tambahan (norma batch tambahan).
DropPath alias "Kedalaman Stochastic" - https://arxiv.org/abs/1603.09382
DropBlock - https://arxiv.org/abs/1810.12890
Penggabungan Buram - https://arxiv.org/abs/1904.11486
Beberapa fitur (yang kurang umum) yang sering saya gunakan dalam proyek saya disertakan. Banyak tambahannya yang menjadi alasan mengapa saya mempertahankan kumpulan model saya sendiri, daripada menggunakan model lain melalui PIP:
Semua model memiliki antarmuka konfigurasi default dan API yang sama
mengakses/mengubah pengklasifikasi - get_classifier
dan reset_classifier
melakukan penerusan hanya pada fitur - forward_features
(lihat dokumentasi)
ini memudahkan penulisan pembungkus jaringan yang konsisten yang berfungsi dengan model mana pun
Semua model mendukung ekstraksi peta fitur multi-skala (piramida fitur) melalui create_model (lihat dokumentasi)
create_model(name, features_only=True, out_indices=..., output_stride=...)
argumen pembuatan out_indices
menentukan peta fitur mana yang akan dikembalikan, indeks ini berbasis 0 dan umumnya sesuai dengan tingkat fitur C(i + 1)
.
arg pembuatan output_stride
mengontrol langkah keluaran jaringan dengan menggunakan konvolusi yang melebar. Sebagian besar jaringan adalah langkah 32 secara default. Tidak semua jaringan mendukung hal ini.
jumlah saluran peta fitur, tingkat pengurangan (langkah) dapat ditanyakan SETELAH pembuatan model melalui anggota .feature_info
Semua model memiliki loader beban terlatih yang konsisten yang mengadaptasi linear terakhir jika diperlukan, dan dari 3 hingga 1 saluran input jika diinginkan
Pelatihan referensi performa tinggi, validasi, dan skrip inferensi yang bekerja dalam beberapa mode proses/GPU:
NVIDIA DDP dengan satu GPU per proses, beberapa proses dengan kehadiran APEX (opsional campuran presisi AMP)
PyTorch DistributedDataParallel dengan multi-gpu, proses tunggal (AMP dinonaktifkan karena mogok saat diaktifkan)
PyTorch dengan proses tunggal GPU tunggal (AMP opsional)
Implementasi kumpulan global dinamis yang memungkinkan pemilihan dari pengumpulan rata-rata, pengumpulan maksimal, rata-rata + maks, atau concat([rata-rata, maks]) pada pembuatan model. Semua pengumpulan global adalah rata-rata adaptif secara default dan kompatibel dengan bobot yang telah dilatih sebelumnya.
Pembungkus 'Test Time Pool' yang dapat menggabungkan model apa pun yang disertakan dan biasanya memberikan peningkatan kinerja dalam melakukan inferensi dengan gambar masukan yang lebih besar dari ukuran pelatihan. Ide diadaptasi dari implementasi DPN asli ketika saya porting (https://github.com/cypw/DPNs)
Penjadwal kecepatan pembelajaran
Penjadwal AllenNLP
FAIRseq lr_scheduler
SGDR: Penurunan Gradien Stochastic dengan Restart Hangat (https://arxiv.org/abs/1608.03983)
Ide yang diadopsi dari
Penjadwal mencakup step
, cosine
dengan restart, tanh
dengan restart, plateau
Space-to-Depth oleh mrT23 (https://arxiv.org/abs/1801.04590) -- makalah asli?
Kliping Gradien Adaptif (https://arxiv.org/abs/2102.06171, https://github.com/deepmind/deepmind-research/tree/master/nfnets)
Berbagai pilihan modul perhatian saluran dan/atau spasial:
Transformator Kemacetan - https://arxiv.org/abs/2101.11605
CBAM - https://arxiv.org/abs/1807.06521
Squeeze-Exitation (ESE) yang Efektif - https://arxiv.org/abs/1911.06667
Perhatian Saluran yang Efisien (ECA) - https://arxiv.org/abs/1910.03151
Gather-Excite (GE) - https://arxiv.org/abs/1810.12348
Konteks Global (GC) - https://arxiv.org/abs/1904.11492
Halo - https://arxiv.org/abs/2103.12731
Involusi - https://arxiv.org/abs/2103.06255
Lapisan Lambda - https://arxiv.org/abs/2102.08602
Non-Lokal (NL) - https://arxiv.org/abs/1711.07971
Peras dan Eksitasi (SE) - https://arxiv.org/abs/1709.01507
Kernel Selektif (SK) - (https://arxiv.org/abs/1903.06586
Berpisah (SPLAT) - https://arxiv.org/abs/2004.08955
Jendela Bergeser (SWIN) - https://arxiv.org/abs/2103.14030
Hasil validasi model dapat dilihat pada tabel hasil
Dokumentasi resmi dapat ditemukan di https://huggingface.co/docs/hub/timm. Kontribusi dokumentasi dipersilakan.
Memulai Model Gambar PyTorch (timm): Panduan Praktisi oleh Chris Hughes adalah postingan blog ekstensif yang mencakup banyak aspek timm
secara mendetail.
timmdocs adalah kumpulan dokumentasi alternatif untuk timm
. Terima kasih banyak kepada Aman Arora atas usahanya menciptakan timmdocs.
paperswithcode adalah sumber yang bagus untuk menjelajahi model dalam timm
.
Folder akar repositori berisi rangkaian referensi, validasi, dan skrip inferensi yang berfungsi dengan model yang disertakan dan fitur lain dari repositori ini. Mereka dapat beradaptasi untuk kumpulan data dan kasus penggunaan lain dengan sedikit peretasan. Lihat dokumentasi.
Salah satu aset terbesar PyTorch adalah komunitas dan kontribusinya. Beberapa sumber daya favorit saya yang cocok dengan model dan komponen di sini tercantum di bawah.
Detektor2 - https://github.com/facebookresearch/detectron2
Model Segmentasi (Semantik) - https://github.com/qubvel/segmentation_models.pytorch
EfficientDet (Obj Det, Semantik segera) - https://github.com/rwightman/efisiendet-pytorch
Albumentasi - https://github.com/albumentations-team/albumentations
Kornia - https://github.com/kornia/kornia
RepDistiller - https://github.com/HobbitLong/RepDistiller
penyulingan obor - https://github.com/yoshitomo-matsubara/torchdistill
Pembelajaran Metrik PyTorch - https://github.com/KevinMusgrave/pytorch-metric-learning
fastai - https://github.com/fastai/fastai
Kode di sini berlisensi Apache 2.0. Saya telah berhati-hati untuk memastikan kode pihak ketiga yang disertakan atau diadaptasi memiliki lisensi yang kompatibel (permisif) seperti MIT, BSD, dll. Saya telah berupaya untuk menghindari konflik GPL/LGPL. Oleh karena itu, Anda bertanggung jawab untuk memastikan bahwa Anda mematuhi lisensi di sini dan ketentuan lisensi yang bergantung. Jika memungkinkan, saya telah menautkan sumber/referensi untuk berbagai komponen di docstrings. Jika menurut Anda saya melewatkan sesuatu, silakan buat masalah.
Sejauh ini semua beban terlatih yang tersedia di sini telah dilatih sebelumnya di ImageNet dengan beberapa beban terpilih yang memiliki beberapa pelatihan awal tambahan (lihat catatan tambahan di bawah). ImageNet dirilis hanya untuk tujuan penelitian non-komersial (https://image-net.org/download). Tidak jelas apa implikasinya terhadap penggunaan bobot yang telah dilatih sebelumnya dari kumpulan data tersebut. Model apa pun yang telah saya latih dengan ImageNet dilakukan untuk tujuan penelitian dan kita harus berasumsi bahwa lisensi kumpulan data asli berlaku untuk bobot tersebut. Sebaiknya Anda mencari nasihat hukum jika Anda ingin menggunakan anak timbangan yang sudah dilatih sebelumnya dalam produk komersial.
Beberapa bobot yang disertakan atau referensi di sini telah dilatih sebelumnya dengan kumpulan data kepemilikan yang tidak dapat saya akses. Ini termasuk model Facebook WSL, SSL, SWSL ResNe(Xt) dan Google Noisy Student EfficientNet. Model Facebook memiliki lisensi nonkomersial eksplisit (CC-BY-NC 4.0, https://github.com/facebookresearch/semi-supervised-ImageNet1K-models, https://github.com/facebookresearch/WSL-Images) . Model Google tampaknya tidak memiliki batasan apa pun di luar lisensi Apache 2.0 (dan kekhawatiran ImageNet). Apa pun kasusnya, Anda harus menghubungi Facebook atau Google jika ada pertanyaan.
@misc{rw2019timm, penulis = {Ross Wightman}, title = {PyTorch Image Models}, tahun = {2019}, penerbit = {GitHub}, jurnal = {repositori GitHub}, doi = {10.5281/zenodo.4414861}, bagaimana diterbitkan = {url{https://github.com/rwightman/pytorch-image-models}}}