timm documentation
Journal des modifications
Journal des modifications
24 octobre 2026
forward_intermediates()etprune_intermediate_layers()sont désormais pris en charge par tous les modèles. Ajouts récents pour CSPNet, NFNet, DLA, DenseNet (#2870, merci à ghaith-mq), CoaT, ConViT, ConvMixer, CrossViT, HRNet, Inception-v3, Inception-ResNet-v2, NASNet, PNASNet, SelecSLS, SENet, Sequencer2d, VGG, Visformer, Xception et Aligned Xception, avecprune_intermediate_layers()pour les encodeurs NaFlexViT et MobileNetV5. CoaT, ConViT, ConvMixer, CrossViT et Visformer bénéficient du support defeatures_only.prune_intermediate_layers()correctionsprune_head=Truesupprime l’ensemble de la tête (normalisation de la tête, couches pré-logits, pooling d’attention) afin que le modèle élagué ne conserve aucun paramètre inutilisé (DDP sansfind_unused_parameters), à l’exception de CoaT, CrossViT et HRNet lorsque seuls certains de leurs échelles / branches parallèles sont conservées. Passezprune_head=Falsepour la conserver.- Le podage d'un modèle hiérarchique à un stade antérieur supprime la norme finale et la tête dimensionnées pour le dernier stade,
forward_features()s'arrête à la dernière fonction conservée etnum_features/head_hidden_sizecorrespondent à celle-ci. Le podage à la fonction de tige supprime le pooling de tige qui la suit. - Corrections pour le checkpointing des gradients,
stop_early, la suppression du jeton de classe / du post-réseau, et le TorchScript des modèles élagués /feature_cls='getter'dans de nombreuses familles.
head_hidden_sizeest la largeur réelle pré-logits (pooled) dans tous les modèles, y compris le pooling concat (catavgmax) et aprèsreset_classifier(). Les types de pooling qu’un modèle ne peut pas appliquer lèvent désormais une erreur à la création / au reset, au lieu d’être ignorés silencieusement ou d’échouer dans le forward.- Autres correctifs : la sortie de VOLO avec
num_classes=0est l’embedding du jeton de classe (correspondant àforward_head(pre_logits=True)),vit_pe_corereset_classifier()avec un pool nonmapsupprime le pool d’attention, l’export du type de pool viasave_for_hflit le pooling actuel de la tête, et les checkpoints sans tête (num_classes=0) de Swin, SwinV2, DaViT et NextViT se rechargent correctement.
13 octobre 2026
- Balayages d’hyperparamètres via un nouveau
sweep.py: recherche par grille ou aléatoire sur n’importe quel argument detrain.py, un--configeffectif par tâche, exécution sur un pool de GPU locaux et reprise possible. Les balayages WSD entraînent un tronc stable par combinaison d’hyperparamètres et dérivent des cooldowns indépendants à partir de ses points de contrôle de jalon, comparant l’annealing à plusieurs budgets pour une fraction du coût des exécutions complètes. Consultez la documentation d’entraînement. train.py:--resume autoreprend sur place depuis lelast.pth.tarpropre à l’expérience (l’historique des points de contrôle,model_bestetsummary.csvrestent cohérents),--stop-epoch Ns’arrête sans modifier le planning,--save-epochs N [N ...]conserve des instantanésmilestone-N.pth.tar, et les valeurs YAML de--configsont validées par rapport aux arguments du script.- Déprécier
PlateauLRScheduler(--sched plateau). Les planificateurstimmsont des fonctions sans état de l'époque ou du nombre de mises à jour ; le planificateur plateau piloté par métrique ne s'y prêtait pas et son état n'est pas sauvegardé, si bien que la reprise n'était jamais exacte. Utilisezcosineouwsd. - Docs : nouvelle page API des modèles, pages de familles de modèles générées pour chaque module de modèle remplaçant les anciennes pages par modèle, et pages de référence étendues pour les données / pertes / modèles.
- Corrections de cohérence de l’API des modèles :
reset_classifier()conserve le pooling actuel dans tous les modèles, les arguments de constructeur inconnus déclenchentTypeErrorpartout,dynamic_img_sizepour la famille Swin, décroissance du taux d’apprentissage par couche pour LeViT, noms deno_weight_decayqui ne correspondaient à aucun paramètre (NesT, SwinV2, XCiT, FocalNet), état de redimensionnement enregistré pour toutes les famillesset_input_size. - Corrections : GCViT mélangeait les images globales de requête au sein d'un lot, checkpointing de gradient pour RDNet et MobileNetV5, taille d'entrée de test obsolète pour
save_for_hf, redimensionnement rectangulaire pour EfficientViT (MSRA), erreurs de conversion d'image dans ImageDataset (#2846).reparameterize_modeldéplacé verstimm.models.
9 octobre 2026
- Ajout de CSPNeXt (backbone de RTMDet)
cspnext_{tiny,s,m,l,x}avec des poids de classification ImageNet-1k convertis depuis OpenMMLab. Merci à Munehiro Kobayashi. - Améliorations des optimiseurs
- Implémentations Foreach (multi-tenseur) pour RMSpropTF, LaProp, LAMB, LARS, AdaBelief. Les étapes Foreach sont découpées en fonction de la taille du cache L2 du périphérique (
TIMM_FOREACH_CHUNK_SIZEpour définir une valeur personnalisée). - RMS update clipping (
clipping_threshold) pour AdamWLegacy / NAdamW, nouvelles variantes NovoGrad de décroissance de poids découplée / corrigée (novogradw,novogradc). - Corrections de justesse pour de nombreux optimiseurs, notamment la correction du weight decay avec mise à jour in-place du tenseur lr, la résolution des blocages des mises à jour FP16 à faible lr, la gestion des états à faible précision (Kron, AdaBelief, NovoGrad) et la suppression de la modification in-place de
p.grad. - Corrections de
torch.compile/ graphes CUDA pour Adopt, SGDW, AdafactorBV. - Nouvelle documentation sur les optimiseurs, couvrant l'utilisation, les conventions de nommage et les familles.
- Implémentations Foreach (multi-tenseur) pour RMSpropTF, LaProp, LAMB, LARS, AdaBelief. Les étapes Foreach sont découpées en fonction de la taille du cache L2 du périphérique (
- Ajouter le planificateur de taux d’apprentissage WSD (warmup-stable-decay) (
--sched wsd,--lr-decay-fn,--lr-stable-timescale). - Corrections du Model EMA pour les modèles bfloat16 / float16. Les EMA bfloat16 de ModelEmaV3 utilisent par défaut l’arrondi stochastique, tandis que les modèles float16 conservent un EMA en float32.
- Redimensionnement des modèles via
set_input_size()- Prise en charge étendue des modèles à fenêtre (MaxViT, CoAtNet, BEiT, EfficientViT-MSRA, ViT relpos, famille Swin).
- Swin / SwinV2 / SwinV2-CR conservent le ratio fenêtre/grille de chaque étape lors du redimensionnement ; un appel à la taille actuelle est désormais sans effet. Prise en charge de
window_size/window_ratiopar étape. Corrige les modèles Swin S3 et SwinV2window16/window12qui modifiaient les sorties lors d'un appel de même taille. - Correction des valeurs NaN dans SwinV2 avec une taille de fenêtre de 1, des tailles de fonction de stage impaires et le redimensionnement hybride ViT sur CUDA / basse précision.
- Correction de la gestion du reste de l'accumulation des gradients (#2821), de l'échantillonnage distribué / de l'augmentation répétée sur les petits jeux de données, des remplacements de la source pré-entraînée et de la configuration de l'enseignant pour la distillation, de
train.pyavec--sched none, et de l'interpolation du recadrage centré pour l'évaluation sur des entrées non carrées. - Corrections de la compatibilité de l’export ONNX sur les différentes versions de PyTorch, corrections de la cohérence du dropout, et autres corrections de l’initialisation sur le méta-appareil.
25 septembre 2026
- Prise en charge de la classification multi-étiquettes
- Ajoutez
--task multilabelàtrain.py/validate.py, entraîné avec BCE (MultiLabelClassificationTask). Consultez la documentation d’entraînement pour plus de détails. - Les cibles peuvent être des listes d’indices de classes, des vecteurs multi-hot denses (
--target-format multihot) ou un champ binaire par classe (--target-key a,b,c), avec des chemins/vers des champs imbriqués. Pris en charge par les lecteurshfds,hfids,tfds(clés multi-champs) etwds. - Les chargeurs Mixup / CutMix et NaFlex prennent en charge les cibles multi-étiquettes. Le lissage d'étiquettes rapproche chaque cible de 0,5 et est défini sur 0 par défaut pour le multi-étiquettes.
- La validation rapporte le mAP (la valeur par défaut de
--eval-metric) ainsi que les F1 micro, macro et par échantillon, avec un seuil de F1 défini par--multilabel-threshold. - Les nouveaux évaluateurs au niveau du jeu de données calculent les métriques sur l'ensemble de validation complet à travers les rangs distribués, en excluant le bourrage du répartiteur distribué.
- Consultez par exemple la collection timm multi-label image datasets sur le Hub pour des jeux de données d’exemple ou de référence fonctionnant immédiatement.
- Ajoutez
- Nouvelles options de perte via
--loss- Poly-1, Two-way, ZLPR et pertes équilibrées par distribution.
- Pondération par fréquence des classes pour BCE / ASL, calculée à partir des comptes de labels collectés par
class_weights.py. - ASL est désormais compatible fp16 et utilise par défaut la réduction
batchmean
- Refactorisation de RoPE
- Étendre l’augmentation des coordonnées RoPE réservée à l’entraînement (décalage, bruit, rééchelonnement) aux embeddings axiaux, mixtes et MRoPE, en partageant les utilitaires avec DINOv3 tout en préservant son comportement d’augmentation existant.
- Ajouter les options
grid_typeetnormalize_coordsaux constructeurs Fourier / rotary (build_fourier_pos_embed,build_rotary_pos_embed) et aux modules RoPE axiaux, ainsi que des sections MRoPE configurables dans EVA. - Prise en charge de
rotate_halfdans la sortie en tuple deRotaryEmbeddinget dans la variante de fabriquebase. - Correction de la transmission de la rotation-layout dans l'attention pooling de EVA, NaFlexViT et MRoPE.
- Conservez les tampons de fréquence et de coordonnées RoPE non appris au moins en float32 dans les modèles half/bfloat16, et calculez les phases RoPE mixtes en float32 sous autocast. Ces corrections de précision peuvent modifier les sorties des modèles à basse précision.
- Correction des embeddings RoPE par lots pour les grilles de pixels et le redimensionnement de la forme de référence. DINOv3
grid_indexing='xy'échange désormais les canaux de coordonnées comme demandé ; les sorties pour ces configurations précédemment incorrectes changent. - Faire en sorte que
apply_rot_embed,apply_rot_embed_catetapply_rot_embed_listrenvoient le dtype de chaque entrée, en effectuant le cast après la rotation sans d’abord convertir sin/cos en un type de plus faible précision. - Consolider les deux modules RoPE axiaux derrière une base privée. Les appels existants restent compatibles, mais le tampon
bandsest désormais conservé dans les modes en cache et dynamique (rope.bandsn'est plusNoneen mode en cache).
- Corrections du passage en mode entraînement/évaluation et du changement de dtype pour LeViT et les modèles associés (EfficentFormer*, EfficientViT-MSRA, TinyViT) avec biais d'attention mis en cache.
22 septembre 2026
- Ajouter les poids de la tour de vision de Qwen-Drive-1.0-4B.
- Corriger la réutilisation et la synchronisation du flux du chargeur de préchargement ainsi qu’AugMix pour les images non carrées et à bande unique.
- Correction de l'échelle du taux d'apprentissage des convolutions pour AdaMuon, de la coupure pour AdafactorBigVision, de l'historique des gradients pour MARS et du chargement des points de contrôle pour Kron.
- Corrige les caches de biais d'attention obsolètes lors de l'évaluation, les métadonnées des fonctionnalités des modèles élagués, le bourrage du pooling max dilaté et le mode de gradient de perte asymétrique.
- Release 1.0.30
10-11 septembre 2026
- Ajout des variantes de classifieur et d’encodeur ViT pour Qwen3-VL / Qwen3.5 / Qwen3.8, y compris les classifieurs avec et sans le fusionneur spatial natif.
- Ajout des ViTs Sapiens2 avec prise en charge de EVA et NaFlexViT. Les deux ajouts de modèles incluent des poids natifs du Hub timm. Merci à Yonghye Kwon.
- Ajout de iFormer avec des poids natifs du Hub timm. Merci à Ryan Hou.
- Ajout d'EfficientViM avec des poids natifs du Hub timm. Merci à smellslikeml.
- Ajout des classifieurs et encodeurs ViT de DeepSeek-V4 / V4.1 avec des poids natifs du Hub timm. Merci à Yonghye Kwon.
- Bascule de l’interpolation de position par défaut de NaFlex SigLIP, de la sélection de la taille d’entrée de
inference.pyet amélioration de l’analyse de--model-kwargs. - Correction de la construction sur le méta-appareil et de la prise en charge des usines d'appareil/dtype pour quelques modèles ; déplacement des tests de configuration vers le méta pour accélérer la CI, couverture du contexte méta.
27 août 2026
- Ajouter le modèle et les poids LowFormer
- Corriger ou fusionner une série de bugs réels mais mineurs ou peu courants, détectés par les agents
- Release 1.0.29
11 août 2026
- Ajout des définitions de modèles et des poids préentraînés pour
- CPUBone, un backbone de vision efficace pour les appareils aux capacités de parallélisation limitées.
- PP-LCNetV2.
- LingBot-Vision.
- Ajouter la planification par lot de l’image et de la taille du lot pour l’entraînement non-NaFlex, y compris les plans de résolution progressifs allant du petit au grand.
- Améliorer NaFlexViT avec des masques d'attention basés uniquement sur les clés, un échantillonnage de positions compatible avec la compilation et économe en mémoire, ainsi qu'une interpolation de patches variables mise en cache.
- Améliorer le chemin de l’usine de modèles et la gestion des points de contrôle ; corriger le rééchantillonnage des embeddings positionnels pour les jetons égaux.
10 juillet 2026
- Améliorer la prise en charge de l'optimiseur
torch.compileet du taux d'apprentissage des tenseurs. - Étendre la mise en page des patches de NaFlexViT (pour NaFlex-CLAP) et la prise en charge de
forward_intermediates(entrée dictionnaire NaFlex). - Renforcer le chargement de pickle et améliorer l’inférence avec des étiquettes personnalisées.
- Release 1.0.28
27 mai 2026
- Ajout des définitions de modèles et des poids préentraînés pour les modèles EUPE ViT (style DINOv3) et ConvNeXt. Consultez le paper Efficient Universal Perception Encoder.
- Ajout des définitions de modèles et des poids préentraînés pour les ViT (de type DINOv2) TIPSv2. Voir l'article TIPSv2.
8 mai 2026
- Release 1.0.27
23 avril 2026
- Ajout des encodeurs ViT de Gemma4 avec prise en charge du pipeline NaFlex (aspect/taille variables par image). Merci à Yonghye Kwon
- Prise en charge des poids DINOv3 dans NaFlexVit. Merci à Yonghye Kwon
- Quelques améliorations du comportement du taux d'apprentissage lors du repli de Muon (AdamW/NadamW)
23 mars 2026
- Améliorer la sécurité de la gestion des points de contrôle pickle. Par défaut, toutes les opérations de chargement utilisent
weights_only=Trueet un paramètre safe_global est ajouté pour ArgParse. - Améliorer la gestion des masques d'attention pour les modèles et couches ViT/EVA de base. Résoudre les masques booléens et transmettre
is_causalpour les tâches SSL. - Correction de l'utilisation des jetons de classe et d'enregistrement avec ViT et sans intégration de position activée.
- Ajout de la représentation affinée par patch (PRR) en tant qu’option de pooling dans ViT. Merci à Sina (https://github.com/sinahmr).
- Améliorer la cohérence des dimensions de la projection de sortie / du MLP pour les couches de pooling d'attention.
- Optimisation du modèle Hiera F.SDPA pour permettre l'utilisation du noyau Flash Attention.
- Précaution ajoutée à l'optimiseur SGDP.
- Version 1.0.26. Première version de maintenance depuis mon départ de Hugging Face.
23 février 2026
- Ajouter la prise en charge de l’entraînement par distillation de jetons aux enveloppes de tâches de distillation
- Supprimer certaines utilisations de torch.jit en préparation de la dépréciation officielle
- Ajout d'une précaution à l'optimiseur AdamP
- Appeler reset_parameters() même lors de l’initialisation sur le méta-appareil afin que les tampons soient initialisés avec des astuces comme init_empty_weights
- Ajuster l'optimiseur Muon pour fonctionner avec DTensor/FSDP2 (utiliser au lieu de clamp_min, branche NS alternative pour DTensor)
- Release 1.0.25
21 janv. 2026
- Compat Break: Correction d'une omission concernant les biais QKV par rapport aux biais MLP dans
ParallelScalingBlock(&DiffParallelScalingBlock)- N'affecte aucun modèle
timmentraîné, mais peut affecter les utilisations en aval.
- N'affecte aucun modèle
5 et 6 janvier 2026
- Release 1.0.24
- Ajout de nouveaux fichiers CSV de résultats de benchmark pour le chronométrage de l’inférence sur tous les modèles avec des cartes RTX Pro 6000, 5090 et 4090, avec PyTorch 2.9.1
- Correction de l'erreur de module déplacé dans le chemin d'importation obsolète timm.models.layers qui affecte les importations héritées
- Release 1.0.23
30 déc. 2025
- Ajout de ViT entraînés avec NAdaMuon améliorés
dpwee,dwee,dlittle((différentiels) avec une légère amélioration par rapport aux exécutions précédentes - Ajout d'une variante de ~21 M de paramètres
timmdu modèle CSATv2 à 512x512 et 640x640- https://huggingface.co/timm/csatv2_21m.sw_r640_in1k (83,13 % top-1)
- https://huggingface.co/timm/csatv2_21m.sw_r512_in1k (82,58 % top-1)
- Factoriser l’initialisation des paramètres non persistants hors de
__init__dans une méthode commune qui peut être appelée en externe viainit_non_persistent_buffers()après l’initialisation sur le méta-appareil.
12 déc. 2025
- Ajout du modèle CSATV2 (merci à https://github.com/gusdlf93) — un modèle léger mais haute résolution avec tige DCT & attention spatiale. https://huggingface.co/Hyunil/CSATv2
- Ajout du support des optimiseurs AdaMuon et NAdaMuon à l’implémentation Muon existante de
timm. Apparaît plus compétitif par rapport à AdamW avec des hyperparamètres familiers pour les tâches d’images. - Nettoyage des PR en fin d'année, fusion des aspects de plusieurs PR ouvertes depuis longtemps
- Fusionner l'attention différentielle (
DiffAttention), ajouter le bloc correspondantDiffParallelScalingBlock(pour ViT), entraîner quelques petits ViT - Ajoutez quelques modules de pooling,
LsePlusetSimPool - Nettoyage et optimisation de
DropBlock2d(ajout également du support pour les modèles basés sur ByobNet)
- Fusionner l'attention différentielle (
- Mise à jour des tests unitaires vers PyTorch 2.9.1 + Python 3.13 pour la borne supérieure, et maintien de PyTorch 1.13 + Python 3.10 pour la borne inférieure
1er déc. 2025
- Ajouter une abstraction de tâches légère, ajouter la prise en charge de la distillation des logits et des caractéristiques au script d’entraînement via de nouvelles tâches.
- Supprimer l'ancienne prise en charge d'APEX AMP
4 nov. 2025
- Correction du bug d’initialisation de LayerScale / LayerScale2d (valeurs d’initialisation ignorées), introduit dans la version 1.0.21. Merci à https://github.com/Ilya-Fradlin
- Release 1.0.22
31 octobre 2025 🎃
- Mettre à jour les fichiers csv des résultats imagenet & OOD variant pour inclure quelques nouveaux modèles et vérifier la justesse sur plusieurs versions de torch & timm
- Poids des modèles EfficientNet-X et EfficientNet-H B5 ajoutés dans le cadre d'une recherche d'hyperparamètres pour AdamW vs Muon (itérations toujours en cours sur les exécutions Muon)
16-20 octobre 2025
- Ajouter une implémentation de l'optimiseur Muon (basé sur https://github.com/KellerJordan/Muon) avec des personnalisations
- flexibilité accrue et gestion améliorée des poids de convolution, ainsi que des solutions de repli pour les formes de poids non adaptées à l'orthogonalisation
- Légère amélioration de la vitesse des itérations NS en réduisant les allocations et en utilisant des opérations (b)add(b)mm fusionnées
- utilise par défaut AdamW (ou NAdamW si
nesterov=True) pour les mises à jour si muon n'est pas adapté à la forme du paramètre (ou s'il est exclu via le drapeau de groupe de paramètres) - comme l'implémentation torch, sélectionnez parmi plusieurs fonctions d'ajustement de l'échelle du taux d'apprentissage via
adjust_lr_fn - sélectionner parmi plusieurs préréglages de coefficients NS ou spécifier les vôtres via
ns_coefficients
- Les 2 premières étapes de l’initialisation du modèle sur l’appareil « meta » sont prises en charge
- Correction de plusieurs opérations qui cassaient la création dans le contexte d’appareil ‘meta’
- Ajouter la prise en charge des mots-clés de fabrique de device et de dtype à tous les modèles et modules (tout ce qui hérite de nn.Module) dans
timm
- Champs de licence ajoutés aux cfg pré-entraînés dans le code
- Release 1.0.21
21 septembre 2025
- Remapper les balises de poids DINOv3 ViT de
lvd_1689m->lvd1689mpour correspondre (idem poursat_493m->sat493m) - Release 1.0.20
17 septembre 2025
- DINOv3 (https://arxiv.org/abs/2508.10104) ConvNeXt and ViT models added. ConvNeXt models were mapped to existing
timmmodel. ViT support done via the EVA base model w/ a newRotaryEmbeddingDinoV3to match the DINOv3 specific RoPE impl - Encodeurs visuels MobileCLIP-2 (https://arxiv.org/abs/2508.20691). Nouvelles variantes MCI3/MCI4 FastViT ajoutées et poids mappés sur les ViTs FastViT et B, L/14 existants.
- Poids de l'encodeur ViT de MetaCLIP-2 Worldwide (https://arxiv.org/abs/2507.22062) ajoutés.
- SigLIP-2 (https://arxiv.org/abs/2502.14786) Poids de l'encodeur NaFlex ViT ajoutés via le modèle NaFlexViT de timm.
- Divers correctifs et contributions
23 juillet 2025
- Ajouter la méthode
set_input_size()aux modèles EVA, utilisée par OpenCLIP 3.0.0 pour permettre le redimensionnement des modèles d'encodeurs basés sur timm. - Release 1.0.18, nécessaire pour les modèles PE-Core S & T dans OpenCLIP 3.0.0
- Correction d'un petit problème de typage qui cassait la compatibilité avec Python 3.9. Publication de la version correcte 1.0.19.
21 juillet 2025
- Prise en charge de ROPE ajoutée à NaFlexViT. Tous les modèles couverts par la base EVA (
eva.py), y compris EVA, EVA02, Meta PE ViT,timmSBB ViT avec ROPE et Naver ROPE-ViT, peuvent désormais être chargés dans NaFlexViT lorsqueuse_naflex=Trueest passé lors de la création du modèle - Ajout de plus d'encodeurs Meta PE ViT, y compris des variantes small/tiny, des variantes lang avec tiling, et plus de variantes spatiales.
- PatchDropout corrigé avec NaFlexViT et également avec les modèles EVA (régression après l'ajout de Naver ROPE-ViT)
- Correction de l'ordre XY avec grid_indexing='xy', impactant l'utilisation d'images non carrées en mode 'xy' (seuls ROPE-ViT et PE sont concernés).
7 juillet 2025
- Ajustements du backbone MobileNet-v5 pour améliorer le comportement de Google Gemma 3n (à associer aux poids officiels mis à jour)
- Ajouter un biais de tige (mis à zéro dans les poids mis à jour, rupture de compatibilité avec les anciens poids)
- GELU -> GELU (approximation tanh). Un changement mineur pour se rapprocher de JAX
- Ajouter deux arguments à la prise en charge de la décroissance par couche : une limite d'échelle minimale et un seuil d'échelle « sans optimisation »
- Ajouter des variantes ‘Fp32’ de LayerNorm, RMSNorm et SimpleNorm qui peuvent être activées pour forcer le calcul de la norme en float32
- Certaines annotations de types et le nettoyage des arguments pour les couches norm, norm+act ont été effectués avec ce qui précède
- Prise en charge de Naver ROPE-ViT (https://github.com/naver-ai/rope-vit) dans
eva.py, ajout du module RotaryEmbeddingMixed pour le mode mixte, poids sur HuggingFace Hub
| model | img_size | top1 | top5 | param_count |
|---|---|---|---|---|
| vit_large_patch16_rope_mixed_ape_224.naver_in1k | 224 | 84.84 | 97.122 | 304.4 |
| vit_large_patch16_rope_mixed_224.naver_in1k | 224 | 84.828 | 97.116 | 304.2 |
| vit_large_patch16_rope_ape_224.naver_in1k | 224 | 84.65 | 97.154 | 304.37 |
| vit_large_patch16_rope_224.naver_in1k | 224 | 84.648 | 97.122 | 304.17 |
| vit_base_patch16_rope_mixed_ape_224.naver_in1k | 224 | 83.894 | 96.754 | 86.59 |
| vit_base_patch16_rope_mixed_224.naver_in1k | 224 | 83.804 | 96.712 | 86.44 |
| vit_base_patch16_rope_ape_224.naver_in1k | 224 | 83.782 | 96.61 | 86.59 |
| vit_base_patch16_rope_224.naver_in1k | 224 | 83.718 | 96.672 | 86.43 |
| vit_small_patch16_rope_224.naver_in1k | 224 | 81.23 | 95.022 | 21.98 |
| vit_small_patch16_rope_mixed_224.naver_in1k | 224 | 81.216 | 95.022 | 21.99 |
| vit_small_patch16_rope_ape_224.naver_in1k | 224 | 81.004 | 95.016 | 22.06 |
| vit_small_patch16_rope_mixed_ape_224.naver_in1k | 224 | 80.986 | 94.976 | 22.06 |
- Certaines opérations de nettoyage des modules ROPE, des fonctions utilitaires et de l'enregistrement des feuilles de traçage FX
- Préparation de la version 1.0.17
26 juin 2025
- Backbone MobileNetV5 (variante avec encodeur uniquement) pour l'encodeur d'images de Gemma 3n
- Version 1.0.16 publiée
23 juin 2025
Ajout du redimensionnement des embeddings de position 2D et factorisés basé sur F.grid_sample à NaFlexViT. Plus rapide lorsqu’il y a beaucoup de tailles différentes (basé sur un exemple de https://github.com/stas-sl).
Accélérer encore le rééchantillonnage de l'incorporation de patch en remplaçant vmap par matmul (basé sur un extrait de https://github.com/stas-sl).
Ajouter 3 points de contrôle natifs NaFlexViT initiaux créés lors des tests, ImageNet-1k et 3 configurations d’embeddings de position différentes avec les mêmes hyperparamètres.
Modèle Précision Top-1 Top-5 Acc Paramètres (M) Longueur de séquence d'évaluation naflexvit_base_patch16_par_gap.e300_s576_in1k 83.67 96.45 86.63 576 naflexvit_base_patch16_parfac_gap.e300_s576_in1k 83.63 96.41 86.46 576 naflexvit_base_patch16_gap.e300_s576_in1k 83.50 96.46 86.63 576 Prise en charge du gradient checkpointing pour
forward_intermediateset correction de certains bugs de checkpointing. Merci à https://github.com/brianhou0208Ajouter le « corrected weight decay » (https://arxiv.org/abs/2506.02285) en tant qu’option pour les optimiseurs AdamW (legacy), Adopt, Kron, Adafactor (BV), Lamb, LaProp, Lion, NadamW, RmsPropTF, SGDW
Passer les modèles PE (encodeur de perception) ViT de Switch à l'utilisation de poids timm natifs plutôt qu'à un remappage à la volée
Correction du bug du flux cuda dans le chargeur de préchargement
5 juin 2025
- Code initial du modèle NaFlexVit. NaFlexVit est un Vision Transformer doté de :
- Encapsulation de l'embedding et du position encoding dans un module unique
- Prise en charge de l'intégration de patch nn.Linear sur des entrées pré-patchifiées (dictionnaires)
- Prise en charge de l'aspect variable et de la résolution variable NaFlex (SigLip-2 : https://arxiv.org/abs/2502.14786)
- Prise en charge de la taille de patch variable de FlexiViT (https://arxiv.org/abs/2212.08013)
- Prise en charge de l'incorporation de position fractionnaire/factorisée de NaViT (https://arxiv.org/abs/2307.06304)
- Les modèles vit existants dans
vision_transformer.pypeuvent être chargés dans le modèle NaFlexVit en ajoutant le drapeauuse_naflex=Trueàcreate_model- Quelques poids natifs arrivent bientôt
- Un pipeline de données NaFlex complet est disponible, permettant l'entraînement, l'ajustement fin et l'évaluation avec des images de rapport et de taille variables.
- Pour l'activer dans
train.pyetvalidate.py, ajoutez l'argument--naflex-loader, qui doit être utilisé avec un NaFlexVit
- Pour l'activer dans
- Pour évaluer un ViT existant (classique) chargé dans le modèle NaFlexVit avec le pipeline de données NaFlex :
python validate.py /imagenet --amp -j 8 --model vit_base_patch16_224 --model-kwargs use_naflex=True --naflex-loader --naflex-max-seq-len 256
- L'entraînement comporte quelques arguments supplémentaires à noter
- L'argument
--naflex-train-seq-lens'spécifie les longueurs de séquences à choisir aléatoirement par lot pendant l'entraînement - L'argument
--naflex-max-seq-lendéfinit la longueur de séquence cible pour la validation - L'ajout de
--model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24active la sélection aléatoire de la taille des patches par lot avec interpolation - L’argument
--naflex-loss-scalemodifie le mode de mise à l’échelle de la perte par lot par rapport à la taille du lot, tandis que le chargement NaFlex detimmmodifie la taille du lot pour chaque longueur de séquence
- L'argument
28 mai 2025
- Ajouter un certain nombre de modèles petits/rapides grâce à https://github.com/brianhou0208
- SwiftFormer - (ICCV2023) SwiftFormer: Efficient Additive Attention for Transformer-based Real-time Mobile Vision Applications
- FasterNet - (CVPR2023) Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
- SHViT - (CVPR2024) SHViT: Single-Head Vision Transformer with Memory Efficient
- StarNet - (CVPR2024) Réécrire les étoiles
- GhostNet-V3 GhostNetV3 : exploration des stratégies d’entraînement pour les modèles compacts
- Mettre à jour EVA ViT (correspondance la plus proche) pour prendre en charge les modèles Perception Encoder (https://arxiv.org/abs/2504.13181) de Meta, en chargeant les poids du Hub, mais il me reste à pousser des poids dédiés
timmAjouter un peu de flexibilité à l'implémentation de ROPE- Ajouter une certaine flexibilité à l'implémentation de ROPE
- Augmentation importante du nombre de modèles prenant en charge
forward_intermediates()et quelques correctifs supplémentaires grâce à https://github.com/brianhou0208- DaViT, EdgeNeXt, EfficientFormerV2, EfficientViT(MIT), EfficientViT(MSRA), FocalNet, GCViT, HGNet /V2, InceptionNeXt, Inception-V4, MambaOut, MetaFormer, NesT, Next-ViT, PiT, PVT V2, RepGhostNet, RepViT, ResNetV2, ReXNet, TinyViT, TResNet, VoV
- Modèle TNT mis à jour avec de nouveaux poids
forward_intermediates()grâce à https://github.com/brianhou0208 - Ajoute le schéma pré-entraîné
local-dir:, permet d’utiliserlocal-dir:/path/to/model/foldercomme nom de modèle pour récupérer la configuration et les poids pré-entraînés des modèles Hugging Face Hub (config.json + fichier de poids) depuis un dossier local. - Corrections et améliorations pour l'export onnx
21 février 2025
- Ajout des encodeurs d'image SigLIP 2 ViT (https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
- Les versions NaFlex à résolution / ratio variable sont en cours de développement
- Ajout des poids ViT « SO150M2 » entraînés avec les recettes SBB, excellents résultats, supérieurs à ImageNet par rapport à la tentative précédente avec moins d'entraînement.
vit_so150m2_patch16_reg1_gap_448.sbb_e200_in12k_ft_in1k- 88,1 % top-1vit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k- 87,9 % top-1vit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k- 87,3 % top-1vit_so150m2_patch16_reg4_gap_256.sbb_e200_in12k
- Poids InternViT-300M ‘2.5’ mis à jour
- Release 1.0.15
1er février 2025
- Pour information, PyTorch 2.6 et Python 3.13 sont testés et fonctionnent avec la version actuelle de main et la version publiée de
timm
27 janvier 2025
- Ajout de l'optimiseur Kron (PSGD avec préconditionneur factorisé de Kronecker)
- Code issu de https://github.com/evanatyourservice/kron_torch
- Voir aussi https://sites.google.com/site/lixilinx/home/psgd
19 janvier 2025
- Correction du chargement des poids safetensor de LeViT, suppression du code de conversion qui aurait dû être désactivé
- Ajout des poids ViT « SO150M » entraînés avec les recettes SBB, résultats corrects, mais forme non optimale pour le pré-entraînement/fine-tuning sur ImageNet-12k/1k
vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k- 86,7 % top-1vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k- 87,4 % top-1vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
- Diverses corrections de frappe, de coquilles, etc.
- Publication de la version 1.0.14 pour corriger le problème de LeViT
9 janvier 2025
- Ajouter la prise en charge de l’entraînement et de la validation en
bfloat16oufloat16pur - Argument du nom de projet
wandbajouté par https://github.com/caojiaolong, utilisez arg.experiment pour le nom - Correction d'un ancien problème lié à l'enregistrement des points de contrôle qui ne fonctionnait pas sur les systèmes de fichiers sans prise en charge des liens durs (par exemple, les montages de systèmes de fichiers FUSE)
- Sortie de la version 1.0.13
6 janvier 2025
- Ajouter l’habillage
torch.utils.checkpoint.checkpoint()danstimm.modelsavecuse_reentrant=Falsepar défaut, sauf siTIMM_REENTRANT_CKPT=1est défini dans l’environnement.
31 déc. 2024
convnext_nano384x384 pré-entraînement et fine-tuning sur ImageNet-12k. https://huggingface.co/models?search=convnext_nano%20r384- Ajouter les encodeurs AIM-v2 de https://github.com/apple/ml-aim, voir sur Hub : https://huggingface.co/models?search=timm%20aimv2
- Ajouter les encodeurs PaliGemma2 de https://github.com/google-research/big_vision aux modèles PaliGemma existants, voir sur Hub : https://huggingface.co/models?search=timm%20pali2
- Ajout des modèles manquants L/14 DFN2B 39B CLIP ViT,
vit_large_patch14_clip_224.dfn2b_s39b - Corriger la couche et la fonction
RmsNormexistantes pour correspondre à la formulation standard, et utiliser l’implémentation de PT 2.5 lorsque c’est possible. Déplacer l’ancienne implémentation dans la coucheSimpleNorm, qui est un LN sans centrage ni biais. Seuls deux modèlestimml’utilisaient, et ils ont été mis à jour. - Autoriser la surcharge de l'argument
cache_dirpour la création de modèles - Transmettre
trust_remote_codepour l’habillage des jeux de données HF - Modèle
inception_next_attoajouté par le créateur - Précautions concernant l'optimiseur Adan, et options de décroissance du poids découplé pour Lamb
- Certaines métadonnées feature_info corrigées par https://github.com/brianhou0208
- Tous les poids de modèles OpenCLIP et JAX (CLIP, SigLIP, Pali, etc.) qui utilisaient un remappage au chargement ont reçu leurs propres instances sur le HF Hub afin de fonctionner avec le chargement basé sur
hf-hub:, et donc avec le nouveauTimmWrapperModelde Transformers
28 nov. 2024
- D'autres optimiseurs
- Ajouter l'optimiseur MARS (https://arxiv.org/abs/2411.10438, https://github.com/AGI-Arena/MARS)
- Ajouter l'optimiseur LaProp (https://arxiv.org/abs/2002.04839, https://github.com/Z-T-WANG/LaProp-Optimizer)
- Ajout du masquage issu de « Cautious Optimizers » (https://arxiv.org/abs/2411.16085, https://github.com/kyleliang919/C-Optim) à Adafactor, Adafactor Big Vision, AdamW (legacy), Adopt, Lamb, LaProp, Lion, NadamW, RMSPropTF, SGDW
- Nettoyage de certaines docstrings et annotations de types concernant les optimiseurs et la factory
- Ajout des modèles MobileNet-V4 Conv Medium pré-entraînés sur in12k et affinés sur in1k @ 384x384
- Ajout de cs3darknet, petit modèle, assez bon en termes de vitesse
12 nov. 2024
- Refactorisation de la fabrique d'optimiseurs
- La nouvelle usine fonctionne en enregistrant les optimiseurs à l'aide de la classe de données OptimInfo, qui comporte certaines caractéristiques clés
- Ajouter
list_optimizers,get_optimizer_class,get_optimizer_infoà la fonctioncreate_optimizer_v2refondue pour explorer les optimiseurs, obtenir des informations ou la classe - déprécier
optim.optim_factory, déplacer les fonctions versoptim/_optim_factory.pyetoptim/_param_groups.pyet encourager l’importation viatimm.optim
- Ajouter l'optimiseur Adopt (https://github.com/iShohei220/adopt)
- Ajouter la variante « Big Vision » de l’optimiseur Adafactor (https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
- Corriger l’implémentation originale d’Adafactor afin de choisir de meilleures dimensions de factorisation pour les convolutions
- Ajuster l'optimiseur LAMB avec quelques améliorations de la fonctionnalité torch.where par rapport à l'original, et refactoriser légèrement le clipping
- Prise en charge de la taille d'image dynamique dans ViT, DeiT et EVA, améliorée pour permettre le redimensionnement à partir de grilles de patches non carrés, merci à https://github.com/wojtke
31 octobre 2024
Ajout d’un ensemble de nouveaux poids ResNet & ResNet-V2 18/34 (bloc de base) très bien entraînés. Voir https://huggingface.co/blog/rwightman/resnet-trick-or-treat
19 octobre 2024
- Nettoyage de l'utilisation de torch amp pour éviter les appels spécifiques à cuda, fusion du support des appareils Ascend (NPU) de MengqingCao qui devrait désormais fonctionner dans PyTorch 2.5 grâce à la nouvelle fonctionnalité de chargement automatique des extensions d'appareil. Testé également sur Intel Arc (XPU) dans Pytorch 2.5 et cela (presque) a fonctionné.
16 octobre 2024
- Correction d'une erreur lors de l'import depuis le chemin obsolète
timm.models.registry, augmentation de la priorité des avertissements d'obsolescence existants pour les rendre visibles - Porter les poids d'InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) vers
timmen tant quevit_intern300m_patch14_448
14 octobre 2024
- Définitions des modèles ResNet 18/18d/34/34d en version Pre-activation (ResNetV2) ajoutées sur demande (poids en attente)
- Release 1.0.10
11 octobre 2024
- Modèle et poids de MambaOut (https://github.com/yuweihao/MambaOut) ajoutés. Une approche audacieuse des modèles de vision SSM sans SSM (essentiellement ConvNeXt avec gating). Un mélange de poids originaux et de variations et poids personnalisés.
- SigLIP SO400M ViT fine-tuné sur ImageNet-1k @ 378x378, ajout de l'option 378x378 pour les modèles SigLIP 384x384 existants
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89,42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- Encodeur ViT SigLIP SO400M issu de la récente variante multilingue (i18n), patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). Mise à jour d'OpenCLIP en attente.
- Ajout de deux modèles et poids ConvNeXt « Zepto » (l'un avec un tronc superposé et l'autre avec un tronc par patch). Utilise RMSNorm, plus petit que le précédent « Atto », 2,2 M de paramètres.
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73,20 top-1 @ 224
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72,81 @ 224
Sept. 2024
- Ajouter une suite de modèles de test minuscules pour améliorer les tests unitaires et les applications de niche à faible consommation de ressources (https://huggingface.co/blog/rwightman/timm-tiny-test)
- Ajout du modèle MobileNetV4-Conv-Small (0.5x) (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 65,81 top-1 @ 256, 64,76 @ 224
- Ajout des variantes MobileNetV3-Large entraînées avec la recette MNV4 Small
- 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
21 août 2024
- Modèles SBB ViT mis à jour, entraînés sur ImageNet-12k et affinés sur ImageNet-1k, qui rivalisent avec un grand nombre de modèles beaucoup plus volumineux et plus lents
| model | top1 | top5 | 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 |
- Poids de MobileNet-V1 1.25, EfficientNet-B1 et ResNet50-D avec la recette de base du défi MNV4
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
| efficientnet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
| resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
| efficientnet_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 |
- Ajout de la prise en charge de l’architecture du backbone et du chargement des poids pour SAM2 (HieraDet)
- Ajout des poids Hiera Small entraînés avec des embeddings de position abswin sur in12k et affinés sur 1k
| model | top1 | top5 | 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 |
8 août 2024
- Ajout de RDNet (‘DenseNets Reloaded’, https://arxiv.org/abs/2403.19588), merci à Donghyun Kim
28 juillet 2024
- Ajout des poids
mobilenet_edgetpu_v2_mavec la recette basée surra4mnv4-small. 80,1 % top-1 @ 224 et 80,7 @ 256. - Release 1.0.8
26 juillet 2024
- Plus de poids MobileNet-v4, pré-entraînement ImageNet-12k avec ajustements fins, et modèles ConvLarge anti-aliasés
| model | top1 | top1_err | top5 | 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 |
- Défis impressionnants de référence MobileNet-V1 et EfficientNet-B0 (https://huggingface.co/blog/rwightman/mobilenet-baselines)
| model | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| efficientnet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
| efficientnet_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 |
- Prototype de
set_input_size()ajouté aux modèles vit et swin v1/v2 pour permettre de modifier la taille de l'image, la taille du patch et la taille de la fenêtre après la création du modèle. - Prise en charge améliorée dans swin pour la gestion de différentes tailles. En plus de
set_input_size, les argumentsalways_partitionetstrict_img_sizeont été ajoutés à__init__pour permettre des contraintes de taille d'entrée plus flexibles - Corrige les informations d’indices désordonnées pour l’enveloppe de fonctionnalité intermédiaire « Getter », et vérifie les indices de sortie ou d’intervalle pour celle-ci.
- Ajouter plusieurs modèles
tinyde moins de 0,5 M de paramètres pour les tests, réellement entraînés sur ImageNet-1k
| model | top1 | top1_err | top5 | top5_err | param_count | img_size | crop_pct |
|---|---|---|---|---|---|---|---|
| test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
| test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
| test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
| test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
| test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
| test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
- Correction de l'initialisation du jeton de registre vit, merci Promisery
- Autres correctifs divers
24 juin 2024
- 3 autres poids hybrides de MobileNetV4 avec un schéma d'initialisation des poids MQA différent
| model | top1 | top1_err | top5 | 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 |
- Chargement des poids de florence2 dans le modèle DaViT
12 juin 2024
- Ajout des modèles MobileNetV4 et du premier ensemble de poids entraînés avec
timm:
- Prise en charge et ajout des poids du modèle de tour d’image Apple MobileCLIP (https://arxiv.org/pdf/2311.17049, FastViT et ViT-B) (partie de la prise en charge d’OpenCLIP).
- Modèle et poids de la tour d’images CLIP de ViTamin (https://arxiv.org/abs/2404.02132) ajoutés (dans le cadre de la prise en charge d’OpenCLIP).
- Prise en charge du modélisation et des poids de la tour d'image ResNet modifiée d'OpenAI CLIP (via ByobNet). Refactorisation de AttentionPool2d.
14 mai 2024
- Prend en charge le chargement des poids jax de PaliGemma dans les modèles SigLIP ViT avec un pooling par moyenne.
- Ajouter les modèles Hiera de Meta (https://github.com/facebookresearch/hiera).
- Ajouter le drapeau
normalize=pour les transformations, renvoyer un torch.Tensor non normalisé avec le type d'origine (pourchug) - Sortie de la version 1.0.3
11 mai 2024
Searching for Better ViT Baselines (For the GPU Poor)poids et variantes vit publiés. Exploration des formes de modèles entre Tiny et Base.
| model | top1 | top5 | 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 | N/A | N/A | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 60.4 | 256 |
- Un utilitaire AttentionExtract a été ajouté pour extraire les cartes d'attention des modèles
timm. Voir l'exemple dans https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949 - L’API
forward_intermediates()a été affinée et ajoutée à davantage de modèles, y compris certains ConvNets qui disposent d’autres méthodes d’extraction. - 1017 des 1047 architectures de modèles prennent en charge l’extraction de fonctionnalités avec
features_only=True. Les 34 architectures restantes peuvent être prises en charge, mais selon les demandes prioritaires. - Supprimez les fonctions annotées avec torch.jit.script, y compris les anciennes activations JIT. Conflit avec dynamo, et dynamo fait un bien meilleur travail lorsqu'il est utilisé.
11 avril 2024
- En préparation d'une version 1.0 très attendue, les choses sont stables depuis un certain temps.
- Fonctionnalité importante qui manquait depuis un certain temps : prise en charge de
features_only=Truepour les modèles ViT avec des états cachés aplatis ou des dispositions de modules non standard (couvrant jusqu'à présent'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*') - La prise en charge des fonctionnalités ci-dessus est assurée par une nouvelle API
forward_intermediates()qui peut être utilisée avec un module d'encapsulation de fonctionnalités ou directement.
model = timm.create_model('vit_base_patch16_224')
final_feat, intermediates = model.forward_intermediates(input)
output = model.forward_head(final_feat) # pooling + classifier head
print(final_feat.shape)
torch.Size([2, 197, 768])
for f in intermediates:
print(f.shape)
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
print(output.shape)
torch.Size([2, 1000])model = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, features_only=True, out_indices=(-3, -2,))
output = model(torch.randn(2, 3, 512, 512))
for o in output:
print(o.shape)
torch.Size([2, 768, 32, 32])
torch.Size([2, 768, 32, 32])- Poids de la tour vision TinyCLIP ajoutés, merci Thien Tran
19 février 2024
- Modèles Next-ViT ajoutés. Adaptés de https://github.com/bytedance/Next-ViT
- Modèles HGNet et PP-HGNetV2 ajoutés. Adaptés de https://github.com/PaddlePaddle/PaddleClas par SeeFun
- Suppression de setup.py, passage à une construction basée sur pyproject.toml prise en charge par PDM
- Ajout de l’implémentation mise à jour du EMA du modèle utilisant _for_each pour réduire la surcharge
- Prise en charge des arguments de périphérique dans le script d'entraînement pour les périphériques non GPU
- Autres correctifs divers et petites ajouts
- Version minimale de Python prise en charge augmentée à 3.8
- Release 0.9.16
8 janvier 2024
Refactoring des jeux de données et des transformations
- Prise en charge des jeux de données (itérables) en streaming de HuggingFace (
--dataset hfids:org/dataset) - Ajustements du wrapper Webdataset pour améliorer la récupération des informations de split, avec possibilité de récupérer automatiquement les splits depuis les webdataset pris en charge sur le hub HF
- Testé le streaming des
datasetsHF et du wrapper webdataset depuis le hub HF avec les récents dépôts ImageNet detimmvers https://huggingface.co/timm - Rendre les clés des colonnes/champs d’entrée et de cible cohérentes entre les jeux de données et les passer via args
- Prise en charge complète du monochrome lors de l'utilisation de
--input-size 1 224 224ou--in-chans 1, configure la conversion d'image PIL de manière appropriée dans le jeu de données - Amélioration de plusieurs transformations de recadrage et de redimensionnement alternatifs (ResizeKeepRatio, RandomCropOrPad, etc.) pour leur utilisation dans le projet d'IA documentaire PixParse
- Ajouter la probabilité de variation de couleur au style SimCLR, ainsi que les options de conversion en niveaux de gris et de flou gaussien, aux augmentations et aux arguments
- Autoriser l'entraînement sans ensemble de validation (
--val-split '') dans le script d'entraînement - Ajouter les arguments
--bce-sum(somme sur la dimension des classes) et--bce-pos-weight(pondération positive) pour l’entraînement, car ce sont des ajustements courants de la perte BCE que je codais souvent en dur
23 nov. 2023
- Ajout des modèles EfficientViT-Large, merci SeeFun
- Correction de la compatibilité avec Python 3.7, le support en sera bientôt retiré
- Autres correctifs divers
- Release 0.9.12
20 nov. 2023
- Ajout d'une flexibilité importante pour les modèles timm basés sur Hugging Face Hub via
model_argsentrée de configuration.model_argssera transmis en tant que kwargs aux modèles lors de leur création. - Mise à jour des fichiers csv d'évaluation et de test imagenet avec les derniers modèles
vision_transformer.pynettoyage du typage et de la documentation par Laureηt- Sortie de la version 0.9.11
3 nov. 2023
- Ajout des poids ViT de DFN (Data Filtering Networks) et MetaCLIP
- Ajout des poids du modèle ViT « register » de DINOv2 (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
- Ajouter des variantes ViT
quickgelupour les poids OpenAI, DFN et MetaCLIP qui l’utilisent (moins efficace) - Amélioration de la saisie ajoutée à ResNet et MobileNet-v3, grâce à Aryan
- Fine-tuning sur ImageNet-12k (à partir de CLIP LAION-2B)
convnext_xxlarge - Sortie de la version 0.9.9
20 octobre 2023
- SigLIP poids de la tour d'image pris en charge dans
vision_transformer.py.- Un grand potentiel pour le fine-tuning et l'utilisation de fonctionnalités en aval.
- Prise en charge expérimentale de « register » dans les modèles vit conformément à Vision Transformers Need Registers
- Mise à jour de RepViT avec la nouvelle publication des poids. Merci à wangao
- Ajouter la prise en charge du redimensionnement des patches (au chargement des poids pré-entraînés) aux modèles Swin
- Sortie de la version 0.9.8 en attente
1er septembre 2023
- TinyViT ajouté par SeeFun
- Corriger EfficientViT (MIT) pour utiliser torch.autocast afin qu'il fonctionne à partir de PT 1.10
- Sortie de la version 0.9.7
28 août 2023
- Ajouter la prise en charge de la taille d'image dynamique aux modèles dans
vision_transformer.py,vision_transformer_hybrid.py,deit.py, eteva.pysans casser la rétrocompatibilité. Ajouter dynamic_img_size=True aux arguments lors de la création du modèle pour permettre de modifier la taille de la grille (interpolation des embeddings de position absolus et/ou ROPE à chaque passe avant). Ajouter dynamic_img_pad=True pour autoriser des tailles d'image non divisibles par la taille du patch (remplissage en bas à droite jusqu'à la taille du patch à chaque passe avant). L'activation de l'un des modes dynamiques cassera le traçage FX à moins que le module PatchEmbed ne soit ajouté comme feuille. La méthode existante de redimensionnement de l'embedding de position en passant une img_size différente (interpolation des poids d'embedding pré-entraînés une seule fois) lors de la création fonctionne toujours. La méthode existante de modification de patch_size (redimensionnement des poids de patch_embed pré-entraînés une seule fois) lors de la création fonctionne toujours. Exemple de commande de validation python validate.py --data-dir /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True- Ajoutez
dynamic_img_size=Trueaux arguments lors de la création du modèle pour autoriser la modification de la taille de la grille (interpolation des embeddings de position absolus et/ou ROPE à chaque passe avant). - Ajoutez
dynamic_img_pad=Truepour autoriser des tailles d’image non divisibles par la taille des patches (remplissage en bas à droite jusqu’à la taille des patches à chaque passe avant). - Activer l'un des modes dynamiques cassera le traçage FX à moins que le module PatchEmbed ne soit ajouté comme feuille.
- La méthode existante de redimensionnement de l’embedding de position en passant un
img_sizedifférent (interpolation des poids d’embedding pré-entraînés une seule fois) lors de la création fonctionne toujours. - La méthode existante pour modifier
patch_size(redimensionner les poids pré-entraînés de patch_embed une seule fois) lors de la création fonctionne toujours. - Exemple de commande de validation
python validate.py --data-dir /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True
- Ajoutez
25 août 2023
- De nombreux nouveaux modèles depuis la dernière version
- FastViT - https://arxiv.org/abs/2303.14189
- MobileOne - https://arxiv.org/abs/2206.04040
- InceptionNeXt - https://arxiv.org/abs/2303.16900
- RepGhostNet - https://arxiv.org/abs/2211.06088 (merci à https://github.com/ChengpengChen)
- GhostNetV2 - https://arxiv.org/abs/2211.12905 (merci à https://github.com/yehuitang)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (merci à https://github.com/seefun)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (merci à https://github.com/seefun)
- Ajouter
--reparaml'argumentbenchmark.py,onnx_export.py, etvalidate.pypour déclencher la reparamétrisation / la fusion de couches pour les modèles disposant de l'une des méthodesreparameterize(),switch_to_deploy()oufuse()- Incluant FastViT, MobileOne, RepGhostNet, EfficientViT (MSRA), RepViT, RepVGG et LeViT
- Préparation de la version 0.9.6 « retour à l'école »
11 août 2023
- Les modèles Swin, MaxViT, CoAtNet et BEiT prennent en charge le redimensionnement de la taille de l’image/du fenêtre lors de la création, avec adaptation des poids pré-entraînés
- Exemple de commande de validation pour tester avec un redimensionnement non carré
python validate.py --data-dir /imagenet --model swin_base_patch4_window7_224.ms_in22k_ft_in1k --amp --amp-dtype bfloat16 --input-size 3 256 320 --model-kwargs window_size=8,10 img_size=256,320
3 août 2023
- Ajout des poids GluonCV pour HRNet w18_small et w18_small_v2. Convertis par SeeFun
- Corriger la régression de nommage des modèles
selecsls* - Le patch et l'embedding de position pour ViT/EVA fonctionnent avec des poids bfloat16/float16 au chargement (ou des activations pour le redimensionnement à la volée)
- Préparation de la publication v0.9.5
27 juillet 2023
- Ajout des poids
seresnextaa201d_32x8d.sw_in12k_ft_in1k_384entraînés avec timm (ainsi que le pré-entraînement.sw_in12k) atteignant 87,3 % de top-1 sur ImageNet-1k, le meilleur modèle de la famille ResNet sur ImageNet dont j’ai connaissance. - Modèle et poids de RepViT (https://arxiv.org/abs/2307.09283) ajoutés par wangao
- Poids des caractéristiques I-JEPA ViT (sans classifieur) ajoutés par SeeFun
- Poids de la fonctionnalité SAM-ViT (segment anything) (sans classifieur) ajoutés par SeeFun
- Ajouter la prise en charge des méthodes alternatives d'extraction de caractéristiques et des indices négatifs à EfficientNet
- Ajouter l’optimiseur NAdamW
- Divers correctifs
11 mai 2023
timm0.9 publié, transition depuis les versions 0.8.xdev
10 mai 2023
- Le téléchargement depuis le Hugging Face Hub est désormais par défaut, 1132 modèles sur https://huggingface.co/timm, 1163 poids dans
timm - Poids du backbone de caractéristiques vit de DINOv2 ajoutés grâce à Leng Yue
- Poids du backbone de fonctionnalités vit ajoutés à FB MAE
- Poids du backbone de caractéristiques OpenCLIP DataComp-XL L/14 ajoutés
- MetaFormer (poolformer-v2, caformer, convformer, poolformer mis à jour (v1)) avec les poids ajoutés par Fredo Guan
- Fonction expérimentale
get_intermediate_layerssur les modèles vit/deit pour récupérer les états cachés (inspirée de l’implémentation DINO). Il s’agit d’un travail en cours et peut évoluer de manière significative… vos retours sont les bienvenus. - La création d'un modèle lève une erreur si
pretrained=Trueet qu'aucun poids n'existe (au lieu de continuer avec une initialisation aléatoire) - Correction d'une régression avec les poids TF issus d'inception / nasnet pour 1001 classes dans les classifieurs d'origine
- Les optimiseurs bitsandbytes (https://github.com/TimDettmers/bitsandbytes) ont été ajoutés à la fabrique, utilisez le préfixe
bnb, par exemplebnbadam8bit - Diverses corrections et nettoyages
- Tests finaux avant de passer à la version 0.9 et de sortir
timmde l'état de pré-version
27 avril 2023
- 97 % des modèles
timmpubliés sur HF Hub et presque tous mis à jour pour prendre en charge les configurations pré-entraînées multi-poids - Nettoyage et refactorisation mineurs d'un autre lot de modèles suite à l'ajout de multi-weight. Plus de support pour fused_attn (F.sdpa) et features_only, ainsi que des correctifs pour torchscript.
21 avril 2023
- Prise en charge de l'accumulation de gradients ajoutée au script d'entraînement et testée (
--grad-accum-steps), merci Taeksang Kim - Plus de poids sur HF Hub (cspnet, cait, volo, xcit, tresnet, hardcorenas, densenet, dpn, vovnet, xception_aligned)
- Ajout de
--head-init-scaleet--head-init-biasà train.py pour mettre à l'échelle la tête du classifieur et définir un biais fixe pour le fine-tuning - Supprimer tout usage de InplaceABN (
inplace_abn), remplacé dans tresnet par BatchNorm standard (poids modifiés en conséquence).
12 avril 2023
- Ajout du script d’export ONNX, du script de validation et des utilitaires que je gardais sous le coude depuis un certain temps. Ajustement du padding « same » pour un meilleur export avec les versions récentes d’ONNX et de PyTorch.
- Refactoriser les arguments de dropout pour les modèles vit et similaires, en séparant drop_rate en
drop_rate(dropout du classifieur),proj_drop_rate(projections mlp / sortie des blocs),pos_drop_rate(dropout des embeddings de position) etattn_drop_rate(dropout d'attention). Ajouter également le dropout de patch (FLIP) aux modèles vit et eva. - Prise en charge de F.scaled_dot_product_attention fusionné pour plus de modèles vit, ajout d'une variable d'environnement (TIMM_FUSED_ATTN) pour le contrôler, et d'une interface de configuration pour l'activer/désactiver
- Ajout des squelettes EVA-CLIP avec les poids de la tour d’images, jusqu’au modèle « enormous » de 4 Md de paramètres, ainsi que du mode OpenAI ViT 336x336 qui avait été manqué.
5 avril 2023
- Tous les modèles ResNet publiés sur le Hugging Face Hub avec prise en charge de plusieurs poids
- Tous les poids entraînés précédents de
timmajoutés avec des balises basées sur la recette pour les différencier - Tous les ResNet contre-attaquent A1/A2/A3 (graine 0) et les poids de l'exemple R50 B/C1/C2/D sont disponibles
- Ajouter les poids de la recette torchvision v2 aux originaux torchvision existants
- Voir le tableau de comparaison dans https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison
- Tous les poids entraînés précédents de
- Nouveaux fine-tunes ImageNet-12k + ImageNet-1k disponibles pour quelques modèles ResNet anti-aliasés
resnetaa50d.sw_in12k_ft_in1k- 81.7 @ 224, 82.6 @ 288resnetaa101d.sw_in12k_ft_in1k- 83.5 @ 224, 84.1 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k- 86.0 @ 224, 86.5 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k_288- 86.5 @ 288, 86.7 @ 320
31 mars 2023
- Ajout du premier fine-tuning ConvNext-XXLarge CLIP -> IN-1k et des fine-tunings intermédiaires IN-12k pour les modèles CLIP convnext-base/large.
| model | top1 | top5 | img_size | param_count | gmacs | macts |
|---|---|---|---|---|---|---|
| convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- Ajout des poids pré-entraînés et affinés d’EVA-02 MIM, publication sur le hub HF et mise à jour des fiches modèles pour tous les modèles EVA. Premier modèle dépassant 90 % de top-1 (99 % de top-5) ! Consultez le code et les poids d’origine sur https://github.com/baaivision/EVA pour plus de détails sur leur travail combinant MIM et CLIP avec de nombreuses adaptations des modèles, des jeux de données et des recettes d’entraînement.
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
| eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
| eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
| eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
| eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
| eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
| eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
| eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
| eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
| eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
| eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
| eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- Multi-poids et HF hub pour les modèles basés sur DeiT et MLP-Mixer
22 mars 2023
- Plus de poids poussés sur le hub HF, accompagnés de la prise en charge de multiples poids, notamment :
regnet.py,rexnet.py,byobnet.py,resnetv2.py,swin_transformer.py,swin_transformer_v2.py,swin_transformer_v2_cr.py - Les modèles Swin Transformer prennent en charge l'extraction de caractéristiques (cartes de caractéristiques NCHW pour
swinv2_cr_*, et NHWC pour tous les autres) ainsi que les sorties d'encodage spatial. - Les modèles et poids de FocalNet (depuis https://github.com/microsoft/FocalNet) ajoutés avec un refactoring important, l'extraction de caractéristiques, et sans contrainte de résolution / de taille fixe
- Les poids de RegNet ont été ajoutés via la publication sur le hub HF, ainsi que les poids SWAG, SEER et torchvision v2. SEER offre des performances relativement faibles par rapport à la taille du modèle, mais peut s’avérer utile.
- Plus de poids pré-entraînés sur ImageNet-12k et affinés sur 1k
timmpoids :rexnetr_200.sw_in12k_ft_in1k- 82.6 @ 224, 83.2 @ 288rexnetr_300.sw_in12k_ft_in1k- 84.0 @ 224, 84.5 @ 288regnety_120.sw_in12k_ft_in1k- 85.0 @ 224, 85.4 @ 288regnety_160.lion_in12k_ft_in1k- 85.6 @ 224, 86.0 @ 288regnety_160.sw_in12k_ft_in1k- 85,6 @ 224, 86,0 @ 288 (par rapport à SWAG PT + 1k FT, c'est identique mais à une résolution bien plus basse, et ça écrase SEER FT)
- Ajout de la fonctionnalité de dépréciation et de remappage des noms de modèles (une étape clé pour sortir la version 0.8.x de la préversion). Les correspondances sont en cours d’ajout…
- Corrections de bugs mineurs et améliorations.
26 février 2023
- Ajout des poids pré-entraînés de la tour d’images ConvNeXt-XXLarge CLIP pour le fine-tuning et l’extraction de caractéristiques (le fine-tuning est à venir) — voir model card
- Mettre à jour la valeur par défaut de l'epsilon de LayerNorm de
convnext_xxlargeà 1e-5 (pour les poids CLIP, stabilité améliorée) - 0.8.15dev0
20 février 2023
- Ajout des poids de la tour d’images CLIP
convnext_large_mlp.clip_laion2b_ft_320etconvnext_large_mlp.clip_laion2b_ft_soup_320de 320x320 pour les fonctionnalités et l’ajustement fin - 0.8.13dev0 publication sur pypi pour les dernières modifications avec le passage à l'organisation huggingface
16 février 2023
- Ajout de la prise en charge des points de contrôle
safetensor - Ajouter des idées issues de « Scaling Vision Transformers to 22 B. Params » (https://arxiv.org/abs/2302.05442) — qk norm, RmsNorm, bloc parallèle
- Ajouter la prise en charge de F.scaleddot_product_attention (PyTorch 2.0 uniquement) à `vit
,vit_relpos,coatnet/maxxvit` (pour commencer) - Ajout de l'optimiseur Lion (avec option multi-tenseur) (https://arxiv.org/abs/2302.06675)
- Le gradient checkpointing fonctionne avec
features_only=True
7 février 2023
- Nouveaux chiffres de référence d'inférence ajoutés dans le dossier results.
- Ajout des poids entraînés de convnext LAION CLIP et du premier ensemble de fine-tunes in1k
convnext_base.clip_laion2b_augreg_ft_in1k- 86.2% @ 256x256convnext_base.clip_laiona_augreg_ft_in1k_384- 86.5% @ 384x384convnext_large_mlp.clip_laion2b_augreg_ft_in1k- 87.3% @ 256x256convnext_large_mlp.clip_laion2b_augreg_ft_in1k_384- 87.9% @ 384x384
- Ajout des modèles DaViT. Prend en charge
features_only=True. Adapté de https://github.com/dingmyu/davit par Fredo. - Utiliser une NormMlpClassifierHead commune pour MaxViT, ConvNeXt et DaViT
- Ajout du modèle EfficientFormer-V2, mise à jour d'EfficientFormer et refonte de LeViT (architectures étroitement liées). Poids disponibles sur le hub HF.
- Nouvelle architecture EfficientFormer-V2, refonte importante par rapport à l’originale sur (https://github.com/snap-research/EfficientFormer). Prend en charge
features_only=True. - Mises à jour mineures d'EfficientFormer.
- Refactoriser les modèles LeViT en étapes, ajouter la prise en charge de
features_only=Trueaux nouvelles variantesconv, remappage des poids requis.
- Nouvelle architecture EfficientFormer-V2, refonte importante par rapport à l’originale sur (https://github.com/snap-research/EfficientFormer). Prend en charge
- Déplacer les métadonnées d’ImageNet (synsets, indices) de
/resultsverstimm/data/_info. - Ajouter les classes ImageNetInfo / DatasetInfo pour fournir l'étiquetage des différentes dispositions de classifieurs ImageNet dans
timm- Mettez à jour
inference.pypour utiliser, essayez :python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
- Mettez à jour
- Prêt pour la préversion 0.8.10 pypi (tests finaux).
20 janv. 2023
Ajouter deux fine-tunes convnext 12k -> 1k à 384x384
convnext_tiny.in12k_ft_in1k_384- 85.1 @ 384convnext_small.in12k_ft_in1k_384- 86.2 @ 384
Poussez tous les poids de MaxxViT sur le hub HF et ajoutez de nouveaux fine-tunings ImageNet-12k -> 1k pour les modèles de base
rwMaxViT et CoAtNet 1/2
| model | top1 | top5 | échantillons / sec | Paramètres (M) | GMAC | Act (M) |
|---|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
| maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
| maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
| maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
| maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
| coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
| maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
| maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
| maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
| coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
| maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
| coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
| maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
| maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
| maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
| maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
| maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
| maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
| maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
| coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
| maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
| maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
| coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
| maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
| maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
| maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
| coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
| maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
| maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
| coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
| maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
| maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
| maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
| maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
| coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
| coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
| coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
| coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
| coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
| maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
11 janvier 2023
- Mise à jour de la série de pré-entraînement ConvNeXt ImageNet-12k avec deux nouveaux poids affinés (et pré-FT
.in12ktags)convnext_nano.in12k_ft_in1k- 82,3 @ 224, 82,9 @ 288 (déjà publié)convnext_tiny.in12k_ft_in1k- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
6 janvier 2023
- J'ai enfin eu le temps d'ajouter
--model-kwargset--opt-kwargsaux scripts pour transmettre directement des arguments rares aux classes de modèles depuis la ligne de commandetrain.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silutrain.py --data-dir /imagenet --model vit_base_patch16_clip_224 --img-size 240 --amp --model-kwargs img_size=240 patch_size=12
- Nettoyage de certains modèles populaires pour mieux prendre en charge le passage d'arguments / fusion avec les configurations de modèles, il en reste d'autres à traiter.
5 janvier 2023
- Modèles et poids ConvNeXt-V2 ajoutés à l'existant
convnext.py- Article : ConvNeXt V2: Co-conception et mise à l'échelle des ConvNets avec des auto-encodeurs masqués
- Implémentation de référence : https://github.com/facebookresearch/ConvNeXt-V2 (NOTE : les poids sont actuellement sous licence CC-BY-NC) @dataclass
23 déc. 2022 🎄☃
- Ajouter les modèles et poids FlexiViT de https://github.com/google-research/big_vision (consultez le papier sur https://arxiv.org/abs/2212.08013)
- NOTE actuellement, le redimensionnement est statique lors de la création du modèle, l'échantillonnage dynamique de la taille de patch en cours d'exécution / d'entraînement est en cours de développement
- De nombreux autres modèles ont été mis à jour pour prendre en charge les poids multiples et sont désormais téléchargeables via le hub HF (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- Plus de tags de modèles pré-entraînés et d’ajustements, certains noms de modèles ont été modifiés (travail en cours sur les traductions de dépréciation, considérer la branche principale DEV pour le moment, utiliser 0.6.x pour un usage stable)
- De nouveaux modèles pré-entraînés sur ImageNet-12k (sous-ensemble de 22k) apparaissent :
efficientnet_b5.in12k_ft_in1k- 85.9 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_nano.in12k_ft_in1k- 82.9 @ 288x288
8 déc. 2022
- Ajouter ‘EVA l’ à
vision_transformer.py, pré-entraînement MIM de ViT-L/14 au style MAE avec des cibles EVA-CLIP, fine-tuning sur ImageNet-1k (avec ImageNet-22k intermédiaire pour certains)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | lien |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | lien |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | lien |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | lien |
6 déc. 2022
- Ajout des poids du modèle ViT-g/14 de type BEiT, « EVA g », avec pré-entraînement MIM et CLIP à
beit.py.
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | lien |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | lien |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | lien |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | lien |
5 déc. 2022
- Version préliminaire (
0.8.0dev0) de la prise en charge de plusieurs poids (model_arch.pretrained_tag). Installer avecpip install --pre timm- vision_transformer, maxvit, convnext sont les trois premières implémentations de modèles avec prise en charge
- Les noms des modèles changent avec cela (les fonctions précédentes _21k, etc. seront fusionnées), nous sommes toujours en train de régler la gestion de l'obsolescence
- Des bugs sont probables, mais j'ai besoin de vos retours, alors n'hésitez pas à l'essayer.
- si la stabilité est requise, veuillez utiliser les versions 0.6.x publiées sur pypi ou cloner depuis la branche 0.6.x
- La prise en charge de la compilation PyTorch 2.0 est ajoutée dans train/validate/inference/benchmark, utilisez l'argument
--torchcompile - Le script d’inférence permet un contrôle plus fin de la sortie : sélectionnez k pour l’indice et la probabilité de la classe principale, avec une sortie au format json, csv ou parquet
- Ajouter un ensemble complet de poids de la tour d’images CLIP affinés, issus des modèles LAION-2B et des modèles OpenAI CLIP d’origine
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | lien |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | lien |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | lien |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | lien |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | lien |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | lien |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | lien |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | lien |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | lien |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | lien |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | lien |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | lien |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | lien |
- Port des poids MaxViT TensorFlow de l'implémentation officielle située à https://github.com/google-research/maxvit
- Les baisses observées pour les poids de fine-tuning in21k redimensionnés à 384/512 étaient plus importantes que prévu, avec un possible manque de détails, mais le fine-tuning 21k semblait sensible aux petits changements de prétraitement
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | lien |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | lien |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | lien |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | lien |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | lien |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | lien |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | lien |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | lien |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | lien |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | lien |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | lien |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | lien |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | lien |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | lien |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | lien |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | lien |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | lien |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | lien |
15 octobre 2022
- Améliorations des scripts d'entraînement et de validation
- Prise en charge des périphériques non-GPU (c.-à-d. CPU)
- Compatibilité SLURM pour le script d'entraînement
- Prise en charge des jeux de données HF (via ReaderHfds)
- Améliorations du chargement de données TFDS/WDS (remplissage/enroulement des échantillons pour une utilisation distribuée corrigé par rapport à l'estimation du nombre d'échantillons)
- support de in_chans !=3 pour les scripts / chargeurs
- Optimiseur Adan
- Permet d'activer le planification du taux d'apprentissage par étape via args
- Les « parsers » du jeu de données ont été renommés en « readers », plus descriptif de leur objectif
- Arguments AMP modifiés, APEX via
--amp-impl apex, bfloat16 pris en charge via--amp-dtype bfloat16 - La branche principale a été basculée sur la version 0.7.x, et la version 0.6x a été forkée pour la publication stable des ajouts de poids uniquement
- renommage de la branche master -> main
10 octobre 2022
- Plus de poids dans la
maxxvitsérie, incl. le premier bloc ConvNeXt basé surcoatnextetmaxxvitexpériences :coatnext_nano_rw_224- 82.0 @ 224 (G) — (utilise le bloc conv de ConvNeXt, sans BatchNorm)maxxvit_rmlp_nano_rw_256- 83,0 @ 256, 83,7 @ 320 (G) (utilise le bloc conv de ConvNeXt, sans BN)maxvit_rmlp_small_rw_224- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256- 84,6 @ 256, 84,9 @ 288 (G) — pourrait être entraîné de manière plus performante, les hyperparamètres nécessitent un réglage (utilise un bloc ConvNeXt, sans BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTE : les poids officiels de MaxVit (in1k) ont été publiés sur https://github.com/google-research/maxvit — un travail supplémentaire est nécessaire pour les porter et les adapter, car mon implémentation a été créée indépendamment de la leur et présente quelques petites différences + tout le problème du padding « same » de TF.
23 septembre 2022
- Les tours d'image CLIP de LAION-2B sont prises en charge comme squelettes pré-entraînés pour le fine-tuning ou l'extraction de caractéristiques (sans classifieur)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
7 septembre 2022
- La page d’accueil de la documentation
timmde Hugging Face est désormais disponible, retrouvez plus de contenu ici à l’avenir - Ajouter les poids BEiT-v2 pour les modèles base et large 224x224 depuis https://github.com/microsoft/unilm/tree/master/beit2
- Ajout de plus de poids dans la
maxxvitsérie, incluant unpico(7.5pico (7,5 M de paramètres, 1,9 GMACs), deuxtinyvariantes :maxvit_rmlp_pico_rw_256- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256- 84.2 @ 256, 84.8 @ 320 (T)
29 août 2022
- Par défaut, la taille de la fenêtre de MaxVit est proportionnelle à img_size. Ajoutez un nouveau poids RelPosMlp MaxViT qui exploite cette propriété :
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 août 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) et MaxVit (https://arxiv.org/abs/2204.01697)
timmmodèles originaux de timm- les deux se trouvent dans la définition du modèle
maxxvit.pyet contiennent de nombreuses expériences hors du périmètre des articles originaux - une version Tensorflow inachevée des auteurs de MaxVit peut être trouvée à https://github.com/google-research/maxvit
- les deux se trouvent dans la définition du modèle
- Poids pré-entraînés timm initiaux pour CoAtNet et MaxVit (en cours d'ajout) :
coatnet_nano_rw_224- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224- 82,4 (T) — REMARQUE les coatnets « 0 » de timm ont 2 blocs de 3e étape supplémentairescoatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) = TPU entraîné avec le code d'entraînement de la branche
bits_and_tpu, (G) = GPU entraîné
- GCVit (poids adaptés depuis https://github.com/NVlabs/GCVit, code réécrit à 100 % dans
timmpour des raisons de licence) - MViT-V2 (vit multi-échelle, adapté de https://github.com/facebookresearch/mvit)
- EfficientFormer (adapté de https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (adapté de https://github.com/whai362/PVT)
- Prise en charge de « Fast Norm » pour LayerNorm et GroupNorm qui évite le passage en float32 avec AMP (utilise APEX LN si disponible pour un gain supplémentaire)
15 août 2022
- Ajout des poids de ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 août 2022
- Définitions de modèles ConvNeXt plus petits et personnalisés avec poids
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- Mise à jour d'EdgeNeXt pour améliorer l'export ONNX, ajouter une nouvelle variante de base et les poids d'origine (https://github.com/mmaaz60/EdgeNeXt)
28 juillet 2022
- Ajout des poids du modèle DeiT-III Medium (width=512, depth=12, num_heads=8) tout juste créés. Merci à Hugo Touvron !
27 juillet 2022
- Tous les fichiers csv de résultats de benchmark et de validation à l'exécution sont enfin à jour !
- Quelques poids et définitions de modèles supplémentaires ajoutés :
darknetaa53- 79.8 @ 256, 80.5 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*poids entraînés principalement sur TPU avec la branchebits_and_tpu. Merci au programme TRC !- Ajouter la prise en charge de output_stride=8 et 16 à ConvNeXt (dilatation)
- Correction du problème de redimensionnement de pos_emb pour les modèles deit3
- Version 0.6.7 publiée sur PyPi (avec les correctifs de bugs ci-dessus et de nouveaux poids depuis la 0.6.5)
8 juillet 2022
Plus de modèles, plus de correctifs
- Modèles de recherche officiels (avec poids) ajoutés :
- EdgeNeXt de (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 de (https://github.com/apple/ml-cvnets)
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- Mes propres modèles :
- Ajout de définitions de
ResNetde petite taille sur demande, avec 1 bloc répété pour les architectures basic et bottleneck (resnet10 et resnet14) CspNetrefactorisé avec une configuration dataclass et une option CrossStage3 (cs3) simplifiée. Ces définitions sont plus proches des backbones de YOLO-v5+.- Plus de réglages sur la position relative vit. Deux modèles
srelpos(position relative partagée) entraînés, et un modèle de taille moyenne avec jeton de classe. - Ajouter un mode de sous-échantillonnage alternatif à EdgeNeXt et entraîner un modèle
small. Meilleur que le modèle small original, mais pas leurs nouveaux poids entraînés USI.
- Ajout de définitions de
- Mes propres résultats de poids de modèle (tous issus de l'entraînement sur ImageNet-1k)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
- Les poids
cs3,darknetetvit_*relposci-dessus ont tous été entraînés sur TPU grâce au programme TRC ! Le reste a été entraîné sur des GPU en surchauffe. - Corrections de la prise en charge du Hugging Face Hub vérifiées, notebook de démonstration à venir
- Les poids / configurations pré-entraînés peuvent être chargés de manière externe (par exemple depuis le disque local) avec prise en charge de l'adaptation des têtes.
- Ajouter la prise en charge de la modification des extensions d’images analysées par les jeux de données/lecteurs de
timm. Voir (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - Implémentation LayerNorm par défaut de ConvNeXt à utiliser
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)viaLayerNorm2ddans tous les cas. Légèrement plus lent que l'implémentation personnalisée précédente sur certains matériels (par exemple Ampere avec CL), mais globalement moins de régressions sur une gamme plus large de matériels et de versions de PyTorch. L'implémentation précédente existe en tant que LayerNormExp2d dans models/layers/norm.py- un peu plus lent que l'implémentation personnalisée précédente sur certains matériels (par exemple Ampere avec CL), mais globalement moins de régressions sur une gamme plus large de matériels et de versions de PyTorch.
- l'implémentation précédente existe sous le nom
LayerNormExp2ddansmodels/layers/norm.py
- De nombreuses corrections de bogues
- Test actuellement en cours pour la prochaine version 0.6.x sur PyPi
- Le pré-entraînement de modèles plus grands avec LeViT reste un travail en cours, ils ne s’entraînent pas bien / facilement sans distillation. Le moment est-il venu d’ajouter le support de la distillation (enfin) ?
- Entraînement des poids ImageNet-22k + finetune en cours, travail sur la prise en charge de multiples poids (lentement) qui avance (il y a BEAUCOUP de poids, soupir) …
13 mai 2022
- Modèles et poids officiels de Swin-V2 ajoutés depuis (https://github.com/microsoft/Swin-Transformer). Nettoyés pour prendre en charge torchscript.
- Quelques refactorisations pour l'implémentation existante de
timmSwin-V2-CR, il est probable que nous fassions un peu plus pour rapprocher certaines parties de la version officielle et décider si nous devons fusionner certains aspects. - Expériences supplémentaires sur la position relative et la normalisation post-résiduelle des Vision Transformer (toutes entraînées sur TPU grâce au programme TRC)
vit_relpos_small_patch16_224- 81,5 @ 224, 82,5 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_relpos_medium_patch16_rpn_224- 82,3 @ 224, 83,1 @ 320 — pos rel + res-post-norm, pas de jeton de classe, pool moyenvit_relpos_medium_patch16_224- 82,5 @ 224, 83,3 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_relpos_base_patch16_gapcls_224- 82,8 @ 224, 83,9 @ 320 — pos rel, layer scale, class token, avg pool (par erreur)
- Faire revivre la variante « medium » du modèle ViT (512 dimensions, 8 têtes), après l’avoir utilisée dans un modèle « small » pré-DeiT pour la première implémentation de ViT en 2020
- Ajout du support des positions relatives ViT pour basculer entre l’implémentation existante et certains ajouts de l’implémentation officielle Swin-V2 pour des essais futurs
- Implémentation de Sequencer2D (https://arxiv.org/abs/2205.01972), ajoutée via une PR de l'auteur (https://github.com/okojoalg)
2 mai 2022
- Expériences sur Vision Transformer ajoutant la position relative (log-coord de Swin-V2) (
vision_transformer_relpos.py) et les branches Residual Post-Norm (de Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79,5 @ 256, 80,6 @ 320 — pos rel + largeur étendue + res-post-norm, pas de jeton de classe, pool moyenvit_relpos_base_patch16_224- 82,5 @ 224, 83,6 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — pos rel + res-post-norm, pas de jeton de classe, moyenne
- Refactorisation du Vision Transformer pour supprimer la couche de représentation qui n'était utilisée que dans le vit initial et rarement depuis avec les nouveaux pré-entraînements (par exemple
How to Train Your ViT) - Les modèles
vit_*prennent en charge la suppression du jeton de classe, l'utilisation du pooling moyen global et l'utilisation de fc_norm (comme dans beit, mae).
22 avril 2022
- Les modèles
timmsont désormais officiellement pris en charge dans fast.ai ! Juste à temps pour le nouveau cours Practical Deep Learning. Le lien de la documentationtimmdocsa été mis à jour vers timm.fast.ai. - Deux autres poids de modèle ajoutés dans la série entraînée sur TPU . Certains pré-entraînements In22k sont toujours en cours.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(anti-aliasé avec AvgPool2d) - 83.85 @ 224, 84.57 @ 288
23 mars 2022
- Ajouter l’option
ParallelBlocketLayerScaleaux modèles vit de base pour prendre en charge les configurations de modèles de Three things everyone should know about ViT convnext_tiny_hnf(normalisation de la tête en premier) poids entraînés avec la recette A2 (ou proche), 82,2 % top-1, pourrait être amélioré avec plus d'époques.
21 mars 2022
- Fusion de
norm_norm_norm. IMPORTANT cette mise à jour pour une future version 0.6.x risque de déstabiliser la branche master pendant un certain temps. La branche0.5.xou une version 0.5.x antérieure peut être utilisée si la stabilité est requise. - Mise à jour importante des poids (entraînés sur TPU) comme décrit dans ce release
regnety_040- 82.3 @ 224, 82.96 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82,44 @ 224, 83,18 @ 288 (timm pre-act)regnetv_064- 83,1 @ 224, 83,71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83,77 @ 256, 84,5 @ 320 (avec fc supplémentaire dans la tête)resnetv2_50d_gn- 80,8 @ 224, 81,96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80,77 @ 224, 82,04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81,9 @ 256, 82,64 @ 320 (EvoNormS)regnetz_d8_evos- 83,42 @ 256, 84,04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- Correctif du support du hub HuggingFace avec les premières bases permettant des « sources de configuration » alternatives pour les définitions et les poids des modèles pré-entraînés (support générique des fichiers locaux / URL distantes bientôt)
- Implémentation de SwinTransformer-V2 ajoutée. Soumise par Christoph Reich. Les expériences d'entraînement et les modifications de modèle de ma part sont en cours, il est donc possible de rencontrer des ruptures de compatibilité.
- Modèles / poids Swin-S3 (AutoFormerV2) ajoutés depuis https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- Modèles MobileViT avec des poids adaptés de https://github.com/apple/ml-cvnets
- Modèles PoolFormer avec des poids adaptés de https://github.com/sail-sg/poolformer
- Modèles VOLO avec des poids adaptés de https://github.com/sail-sg/volo
- Travaux importants portant sur l'expérimentation de couches de normalisation autres que BatchNorm, telles que EvoNorm, FilterResponseNorm, GroupNorm, etc.
- Amélioration de la prise en charge des couches de normalisation et d'activation alternatives (‘NormAct’) ajoutées à un certain nombre de modèles, notamment EfficientNet/MobileNetV3, RegNet et Xception aligné
- Prise en charge des convolutions groupées ajoutée à la famille EfficientNet
- Ajouter une API de « group matching » à tous les modèles pour permettre le regroupement des paramètres du modèle en vue de l’application d’un déclin « layer-wise » du taux d’apprentissage, ainsi qu’un facteur d’échelle du taux d’apprentissage ajouté au planificateur de taux d’apprentissage
- Prise en charge du gradient checkpointing ajoutée à de nombreux modèles
forward_head(x, pre_logits=False)fonction ajoutée à tous les modèles pour permettre des appels séparés deforward_features+forward_head- Tous les modèles vision transformer et vision MLP sont mis à jour pour retourner des fonctionnalités non agrégées / non sélectionnées par jeton depuis
forward_features, afin d’assurer la cohérence avec les modèles CNN ; la sélection de jetons ou l’agrégation est désormais appliquée dansforward_head
2 février 2022
- Chris Hughes a publié hier sur son blog un tour d’horizon exhaustif de
timm. La lecture en vaut vraiment la peine. Getting Started with PyTorch Image Models (timm): A Practitioner’s Guide - Je prépare actuellement la fusion de la branche
norm_norm_normvers master (version 0.6.x) d'ici la semaine prochaine. Les modifications sont plus étendues que d'habitude et pourraient déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité ascendante complète). Faites donc attention à l'installation via pip install git+https://github.com/rwightman/pytorch-image-models ! Les versions 0.5.x et la branche 0.5.x resteront stables avec un ou deux cherry-picks jusqu'à ce que la situation se stabilise. Il est recommandé de rester sur l'installation via pypi pendant un moment si vous souhaitez la stabilité.- Les modifications sont plus étendues que d'habitude et peuvent déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité rétroactive complète). Faites donc attention aux installations via
pip install git+https://github.com/rwightman/pytorch-image-models! - Les versions
0.5.xet la branche0.5.xresteront stables avec un ou deux cherry-picks jusqu’à ce que la situation se stabilise. Il est recommandé de privilégier l’installation via pypi pendant un certain temps si vous souhaitez une version stable.
- Les modifications sont plus étendues que d'habitude et peuvent déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité rétroactive complète). Faites donc attention aux installations via
14 janvier 2022
- Version 0.5.4 avec publication à venir sur pypi. Il y a un moment que la dernière mise à jour sur pypi n’a pas eu lieu et des modifications plus risquées seront bientôt fusionnées dans la branche principale…
- Ajout des modèles ConvNeXT avec les poids de l’implémentation officielle (https://github.com/facebookresearch/ConvNeXt), quelques ajustements de performance, compatible avec les fonctionnalités de timm
- J'ai essayé d'entraîner quelques petits modèles (~1,8 à 3 M de paramètres) optimisés pour le mobile. Certains sont déjà bons, d'autres arrivent…
mnasnet_small- 65,6 top-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- Modèles TinyNet ajoutés par rsomani95
- LCNet ajouté via l'architecture MobileNetV3
5 janvier 2023
- Modèles et poids ConvNeXt-V2 ajoutés à l'existant
convnext.py- Article : ConvNeXt V2: Co-conception et mise à l'échelle des ConvNets avec des auto-encodeurs masqués
- Implémentation de référence : https://github.com/facebookresearch/ConvNeXt-V2 (NOTE : les poids sont actuellement sous licence CC-BY-NC)
23 déc. 2022 🎄☃
- Ajouter les modèles et poids FlexiViT de https://github.com/google-research/big_vision (consultez le papier sur https://arxiv.org/abs/2212.08013)
- NOTE actuellement, le redimensionnement est statique lors de la création du modèle, l'échantillonnage dynamique de la taille de patch en cours d'exécution / d'entraînement est en cours de développement
- De nombreux autres modèles ont été mis à jour pour prendre en charge les poids multiples et sont désormais téléchargeables via le hub HF (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- Plus de tags de modèles pré-entraînés et d’ajustements, certains noms de modèles ont été modifiés (travail en cours sur les traductions de dépréciation, considérer la branche principale DEV pour le moment, utiliser 0.6.x pour un usage stable)
- De nouveaux modèles pré-entraînés sur ImageNet-12k (sous-ensemble de 22k) apparaissent :
efficientnet_b5.in12k_ft_in1k- 85.9 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_nano.in12k_ft_in1k- 82.9 @ 288x288
8 déc. 2022
- Ajouter ‘EVA l’ à
vision_transformer.py, pré-entraînement MIM de ViT-L/14 au style MAE avec des cibles EVA-CLIP, fine-tuning sur ImageNet-1k (avec ImageNet-22k intermédiaire pour certains)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | lien |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | lien |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | lien |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | lien |
6 déc. 2022
- Ajout des poids du modèle ViT-g/14 de type BEiT, « EVA g », avec pré-entraînement MIM et CLIP à
beit.py.
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | lien |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | lien |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | lien |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | lien |
5 déc. 2022
- Version préliminaire (
0.8.0dev0) de la prise en charge de plusieurs poids (model_arch.pretrained_tag). Installer avecpip install --pre timm- vision_transformer, maxvit, convnext sont les trois premières implémentations de modèles avec prise en charge
- Les noms des modèles changent avec cela (les fonctions précédentes _21k, etc. seront fusionnées), nous sommes toujours en train de régler la gestion de l'obsolescence
- Des bugs sont probables, mais j'ai besoin de vos retours, alors n'hésitez pas à l'essayer.
- si la stabilité est requise, veuillez utiliser les versions 0.6.x publiées sur pypi ou cloner depuis la branche 0.6.x
- La prise en charge de la compilation PyTorch 2.0 est ajoutée dans train/validate/inference/benchmark, utilisez l'argument
--torchcompile - Le script d’inférence permet un contrôle plus fin de la sortie : sélectionnez k pour l’indice et la probabilité de la classe principale, avec une sortie au format json, csv ou parquet
- Ajouter un ensemble complet de poids de la tour d’images CLIP affinés, issus des modèles LAION-2B et des modèles OpenAI CLIP d’origine
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | lien |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | lien |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | lien |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | lien |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | lien |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | lien |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | lien |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | lien |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | lien |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | lien |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | lien |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | lien |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | lien |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | lien |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | lien |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | lien |
- Port des poids MaxViT TensorFlow de l'implémentation officielle située à https://github.com/google-research/maxvit
- Les baisses observées pour les poids de fine-tuning in21k redimensionnés à 384/512 étaient plus importantes que prévu, avec un possible manque de détails, mais le fine-tuning 21k semblait sensible aux petits changements de prétraitement
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | lien |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | lien |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | lien |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | lien |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | lien |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | lien |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | lien |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | lien |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | lien |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | lien |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | lien |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | lien |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | lien |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | lien |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | lien |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | lien |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | lien |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | lien |
15 octobre 2022
- Améliorations des scripts d'entraînement et de validation
- Prise en charge des périphériques non-GPU (c.-à-d. CPU)
- Compatibilité SLURM pour le script d'entraînement
- Prise en charge des jeux de données HF (via ReaderHfds)
- Améliorations du chargement de données TFDS/WDS (remplissage/enroulement des échantillons pour une utilisation distribuée corrigé par rapport à l'estimation du nombre d'échantillons)
- support de in_chans !=3 pour les scripts / chargeurs
- Optimiseur Adan
- Permet d'activer le planification du taux d'apprentissage par étape via args
- Les « parsers » du jeu de données ont été renommés en « readers », plus descriptif de leur objectif
- Arguments AMP modifiés, APEX via
--amp-impl apex, bfloat16 pris en charge via--amp-dtype bfloat16 - La branche principale a été basculée sur la version 0.7.x, et la version 0.6x a été forkée pour la publication stable des ajouts de poids uniquement
- renommage de la branche master -> main
10 octobre 2022
- Plus de poids dans la
maxxvitsérie, incl. le premier bloc ConvNeXt basé surcoatnextetmaxxvitexpériences :coatnext_nano_rw_224- 82.0 @ 224 (G) — (utilise le bloc conv de ConvNeXt, sans BatchNorm)maxxvit_rmlp_nano_rw_256- 83,0 @ 256, 83,7 @ 320 (G) (utilise le bloc conv de ConvNeXt, sans BN)maxvit_rmlp_small_rw_224- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256- 84,6 @ 256, 84,9 @ 288 (G) — pourrait être entraîné de manière plus performante, les hyperparamètres nécessitent un réglage (utilise un bloc ConvNeXt, sans BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTE : les poids officiels de MaxVit (in1k) ont été publiés sur https://github.com/google-research/maxvit — un travail supplémentaire est nécessaire pour les porter et les adapter, car mon implémentation a été créée indépendamment de la leur et présente quelques petites différences + tout le problème du padding « same » de TF.
23 septembre 2022
- Les tours d'image CLIP de LAION-2B sont prises en charge comme squelettes pré-entraînés pour le fine-tuning ou l'extraction de caractéristiques (sans classifieur)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
7 septembre 2022
- La page d’accueil de la documentation
timmde Hugging Face est désormais disponible, retrouvez plus de contenu ici à l’avenir - Ajouter les poids BEiT-v2 pour les modèles base et large 224x224 depuis https://github.com/microsoft/unilm/tree/master/beit2
- Ajout de plus de poids dans la
maxxvitsérie, incluant unpico(7.5pico (7,5 M de paramètres, 1,9 GMACs), deuxtinyvariantes :maxvit_rmlp_pico_rw_256- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256- 84.2 @ 256, 84.8 @ 320 (T)
29 août 2022
- Par défaut, la taille de la fenêtre de MaxVit est proportionnelle à img_size. Ajoutez un nouveau poids RelPosMlp MaxViT qui exploite cette propriété :
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 août 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) et MaxVit (https://arxiv.org/abs/2204.01697)
timmmodèles originaux de timm- les deux se trouvent dans la définition du modèle
maxxvit.pyet contiennent de nombreuses expériences hors du périmètre des articles originaux - une version Tensorflow inachevée des auteurs de MaxVit peut être trouvée à https://github.com/google-research/maxvit
- les deux se trouvent dans la définition du modèle
- Poids pré-entraînés timm initiaux pour CoAtNet et MaxVit (en cours d'ajout) :
coatnet_nano_rw_224- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224- 82,4 (T) — REMARQUE les coatnets « 0 » de timm ont 2 blocs de 3e étape supplémentairescoatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) = TPU entraîné avec le code d'entraînement de la branche
bits_and_tpu, (G) = GPU entraîné
- GCVit (poids adaptés depuis https://github.com/NVlabs/GCVit, code réécrit à 100 % dans
timmpour des raisons de licence) - MViT-V2 (vit multi-échelle, adapté de https://github.com/facebookresearch/mvit)
- EfficientFormer (adapté de https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (adapté de https://github.com/whai362/PVT)
- Prise en charge de « Fast Norm » pour LayerNorm et GroupNorm qui évite le passage en float32 avec AMP (utilise APEX LN si disponible pour un gain supplémentaire)
15 août 2022
- Ajout des poids de ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 août 2022
- Définitions de modèles ConvNeXt plus petits et personnalisés avec poids
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- Mise à jour d'EdgeNeXt pour améliorer l'export ONNX, ajouter une nouvelle variante de base et les poids d'origine (https://github.com/mmaaz60/EdgeNeXt)
28 juillet 2022
- Ajout des poids du modèle DeiT-III Medium (width=512, depth=12, num_heads=8) tout juste créés. Merci à Hugo Touvron !
27 juillet 2022
- Tous les fichiers csv des résultats de benchmark et de validation à l'exécution sont à jour !
- Quelques poids et définitions de modèles supplémentaires ajoutés :
darknetaa53- 79.8 @ 256, 80.5 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*poids entraînés principalement sur TPU avec la branchebits_and_tpu. Merci au programme TRC !- Ajouter la prise en charge de output_stride=8 et 16 à ConvNeXt (dilatation)
- Correction du problème de redimensionnement de pos_emb pour les modèles deit3
- Version 0.6.7 publiée sur PyPi (avec les correctifs de bugs ci-dessus et de nouveaux poids depuis la 0.6.5)
8 juillet 2022
Plus de modèles, plus de correctifs
- Modèles de recherche officiels (avec poids) ajoutés :
- EdgeNeXt de (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 de (https://github.com/apple/ml-cvnets)
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- Mes propres modèles :
- Ajout de définitions de
ResNetde petite taille sur demande, avec 1 bloc répété pour les architectures basic et bottleneck (resnet10 et resnet14) CspNetrefactorisé avec une configuration dataclass et une option CrossStage3 (cs3) simplifiée. Ces définitions sont plus proches des backbones de YOLO-v5+.- Plus de réglages sur la position relative vit. Deux modèles
srelpos(position relative partagée) entraînés, et un modèle de taille moyenne avec jeton de classe. - Ajouter un mode de sous-échantillonnage alternatif à EdgeNeXt et entraîner un modèle
small. Meilleur que le modèle small original, mais pas leurs nouveaux poids entraînés USI.
- Ajout de définitions de
- Mes propres résultats de poids de modèle (tous issus de l'entraînement sur ImageNet-1k)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
- Les poids
cs3,darknetetvit_*relposci-dessus ont tous été entraînés sur TPU grâce au programme TRC ! Le reste a été entraîné sur des GPU en surchauffe. - Corrections de la prise en charge du Hugging Face Hub vérifiées, notebook de démonstration à venir
- Les poids / configurations pré-entraînés peuvent être chargés de manière externe (par exemple depuis le disque local) avec prise en charge de l'adaptation des têtes.
- Ajouter la prise en charge de la modification des extensions d’images analysées par les jeux de données/analyseurs de
timm. Voir (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - Implémentation LayerNorm par défaut de ConvNeXt à utiliser
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)viaLayerNorm2ddans tous les cas. Légèrement plus lent que l'implémentation personnalisée précédente sur certains matériels (par exemple Ampere avec CL), mais globalement moins de régressions sur une gamme plus large de matériels et de versions de PyTorch. L'implémentation précédente existe en tant que LayerNormExp2d dans models/layers/norm.py- un peu plus lent que l'implémentation personnalisée précédente sur certains matériels (par exemple Ampere avec CL), mais globalement moins de régressions sur une gamme plus large de matériels et de versions de PyTorch.
- l'implémentation précédente existe sous le nom
LayerNormExp2ddansmodels/layers/norm.py
- De nombreuses corrections de bogues
- Test actuellement en cours pour la prochaine version 0.6.x sur PyPi
- Le pré-entraînement de modèles plus grands avec LeViT reste un travail en cours, ils ne s’entraînent pas bien / facilement sans distillation. Le moment est-il venu d’ajouter le support de la distillation (enfin) ?
- Entraînement des poids ImageNet-22k + finetune en cours, travail sur la prise en charge de multiples poids (lentement) qui avance (il y a BEAUCOUP de poids, soupir) …
13 mai 2022
- Modèles et poids officiels de Swin-V2 ajoutés depuis (https://github.com/microsoft/Swin-Transformer). Nettoyés pour prendre en charge torchscript.
- Quelques refactorisations pour l'implémentation existante de
timmSwin-V2-CR, il est probable que nous fassions un peu plus pour rapprocher certaines parties de la version officielle et décider si nous devons fusionner certains aspects. - Expériences supplémentaires sur la position relative et la normalisation post-résiduelle des Vision Transformer (toutes entraînées sur TPU grâce au programme TRC)
vit_relpos_small_patch16_224- 81,5 @ 224, 82,5 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_relpos_medium_patch16_rpn_224- 82,3 @ 224, 83,1 @ 320 — pos rel + res-post-norm, pas de jeton de classe, pool moyenvit_relpos_medium_patch16_224- 82,5 @ 224, 83,3 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_relpos_base_patch16_gapcls_224- 82,8 @ 224, 83,9 @ 320 — pos rel, layer scale, class token, avg pool (par erreur)
- Faire revivre la variante « medium » du modèle ViT (512 dimensions, 8 têtes), après l’avoir utilisée dans un modèle « small » pré-DeiT pour la première implémentation de ViT en 2020
- Ajout du support des positions relatives ViT pour basculer entre l’implémentation existante et certains ajouts de l’implémentation officielle Swin-V2 pour des essais futurs
- Implémentation de Sequencer2D (https://arxiv.org/abs/2205.01972), ajoutée via une PR de l'auteur (https://github.com/okojoalg)
2 mai 2022
- Expériences sur Vision Transformer ajoutant la position relative (log-coord de Swin-V2) (
vision_transformer_relpos.py) et les branches Residual Post-Norm (de Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79,5 @ 256, 80,6 @ 320 — pos rel + largeur étendue + res-post-norm, pas de jeton de classe, pool moyenvit_relpos_base_patch16_224- 82,5 @ 224, 83,6 @ 320 — pos rel, layer scale, pas de class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — pos rel + res-post-norm, pas de jeton de classe, moyenne
- Refactorisation du Vision Transformer pour supprimer la couche de représentation qui n'était utilisée que dans le vit initial et rarement depuis avec les nouveaux pré-entraînements (par exemple
How to Train Your ViT) - Les modèles
vit_*prennent en charge la suppression du jeton de classe, l'utilisation du pooling moyen global et l'utilisation de fc_norm (comme dans beit, mae).
22 avril 2022
- Les modèles
timmsont désormais officiellement pris en charge dans fast.ai ! Juste à temps pour le nouveau cours Practical Deep Learning. Le lien de la documentationtimmdocsa été mis à jour vers timm.fast.ai. - Deux autres poids de modèle ajoutés dans la série entraînée sur TPU . Certains pré-entraînements In22k sont toujours en cours.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(anti-aliasé avec AvgPool2d) - 83.85 @ 224, 84.57 @ 288
23 mars 2022
- Ajouter l’option
ParallelBlocketLayerScaleaux modèles vit de base pour prendre en charge les configurations de modèles de Three things everyone should know about ViT convnext_tiny_hnf(normalisation de la tête en premier) poids entraînés avec la recette A2 (ou proche), 82,2 % top-1, pourrait être amélioré avec plus d'époques.
21 mars 2022
- Fusion de
norm_norm_norm. IMPORTANT cette mise à jour pour une future version 0.6.x risque de déstabiliser la branche master pendant un certain temps. La branche0.5.xou une version 0.5.x antérieure peut être utilisée si la stabilité est requise. - Mise à jour importante des poids (entraînés sur TPU) comme décrit dans ce release
regnety_040- 82.3 @ 224, 82.96 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82,44 @ 224, 83,18 @ 288 (timm pre-act)regnetv_064- 83,1 @ 224, 83,71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83,77 @ 256, 84,5 @ 320 (avec fc supplémentaire dans la tête)resnetv2_50d_gn- 80,8 @ 224, 81,96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80,77 @ 224, 82,04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81,9 @ 256, 82,64 @ 320 (EvoNormS)regnetz_d8_evos- 83,42 @ 256, 84,04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- Correctif du support du hub HuggingFace avec les premières bases permettant des « sources de configuration » alternatives pour les définitions et les poids des modèles pré-entraînés (support générique des fichiers locaux / URL distantes bientôt)
- Implémentation de SwinTransformer-V2 ajoutée. Soumise par Christoph Reich. Les expériences d'entraînement et les modifications de modèle de ma part sont en cours, il est donc possible de rencontrer des ruptures de compatibilité.
- Modèles / poids Swin-S3 (AutoFormerV2) ajoutés depuis https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- Modèles MobileViT avec des poids adaptés de https://github.com/apple/ml-cvnets
- Modèles PoolFormer avec des poids adaptés de https://github.com/sail-sg/poolformer
- Modèles VOLO avec des poids adaptés de https://github.com/sail-sg/volo
- Travaux importants portant sur l'expérimentation de couches de normalisation autres que BatchNorm, telles que EvoNorm, FilterResponseNorm, GroupNorm, etc.
- Amélioration de la prise en charge des couches de normalisation et d'activation alternatives (‘NormAct’) ajoutées à un certain nombre de modèles, notamment EfficientNet/MobileNetV3, RegNet et Xception aligné
- Prise en charge des convolutions groupées ajoutée à la famille EfficientNet
- Ajouter une API de « group matching » à tous les modèles pour permettre le regroupement des paramètres du modèle en vue de l’application d’un déclin « layer-wise » du taux d’apprentissage, ainsi qu’un facteur d’échelle du taux d’apprentissage ajouté au planificateur de taux d’apprentissage
- Prise en charge du gradient checkpointing ajoutée à de nombreux modèles
forward_head(x, pre_logits=False)fonction ajoutée à tous les modèles pour permettre des appels séparés deforward_features+forward_head- Tous les modèles vision transformer et vision MLP sont mis à jour pour retourner des fonctionnalités non agrégées / non sélectionnées par jeton depuis
forward_features, afin d’assurer la cohérence avec les modèles CNN ; la sélection de jetons ou l’agrégation est désormais appliquée dansforward_head
2 février 2022
- Chris Hughes a publié hier sur son blog un tour d’horizon exhaustif de
timm. La lecture en vaut vraiment la peine. Getting Started with PyTorch Image Models (timm): A Practitioner’s Guide - Je prépare actuellement la fusion de la branche
norm_norm_normvers master (version 0.6.x) d'ici la semaine prochaine. Les modifications sont plus étendues que d'habitude et pourraient déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité ascendante complète). Faites donc attention à l'installation via pip install git+https://github.com/rwightman/pytorch-image-models ! Les versions 0.5.x et la branche 0.5.x resteront stables avec un ou deux cherry-picks jusqu'à ce que la situation se stabilise. Il est recommandé de rester sur l'installation via pypi pendant un moment si vous souhaitez la stabilité.- Les modifications sont plus étendues que d'habitude et peuvent déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité rétroactive complète). Faites donc attention aux installations via
pip install git+https://github.com/rwightman/pytorch-image-models! - Les versions
0.5.xet la branche0.5.xresteront stables avec un ou deux cherry-picks jusqu’à ce que la situation se stabilise. Il est recommandé de privilégier l’installation via pypi pendant un certain temps si vous souhaitez une version stable.
- Les modifications sont plus étendues que d'habitude et peuvent déstabiliser ou casser certaines utilisations de l'API des modèles (l'objectif étant d'assurer une compatibilité rétroactive complète). Faites donc attention aux installations via
14 janvier 2022
- Version 0.5.4 avec publication à venir sur pypi. Il y a un moment que la dernière mise à jour sur pypi n’a pas eu lieu et des modifications plus risquées seront bientôt fusionnées dans la branche principale…
- Ajout des modèles ConvNeXT avec les poids de l’implémentation officielle (https://github.com/facebookresearch/ConvNeXt), quelques ajustements de performance, compatible avec les fonctionnalités de timm
- J'ai essayé d'entraîner quelques petits modèles (~1,8 à 3 M de paramètres) optimisés pour le mobile. Certains sont déjà bons, d'autres arrivent…
mnasnet_small- 65,6 top-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- Modèles TinyNet ajoutés par rsomani95
- LCNet ajouté via l'architecture MobileNetV3