timm documentation
Registro de cambios
Registro de cambios
3 de noviembre de 2026
reset_classifier()y reconstrucción de puntos de control: correcciones en ViT, EVA, BEiT, NaFlexViT, RepViT e iFormer conservar la ubicación de la normalización y la configuración de destilación al exportar / recargar modelos después de cambiar el clasificador o el agrupamiento. Además, corregir la exportación de PiT sin agrupar y EfficientFormerV2 con la destilación desactivada.- NaFlex: corrige la ubicación de la normalización en ViT / EVA durante la conversión, admite la alineación de SwiGLU para los puntos de control de DINOv3 / Lingbot y preserva los canales de entrada en escala de grises / no RGB en los cargadores de datos.
- Corregir el agrupamiento de la decaimiento de la tasa de aprendizaje por capa para RepViT, HGNet, MViTv2 y ViTs con pre-norm, así como los tamaños de características de InceptionNeXt con
output_stride=8/16. - Liberación 1.0.31.
24 de octubre de 2026
forward_intermediates()yprune_intermediate_layers()son ahora compatibles con todos los modelos. Se han añadido para CSPNet, NFNet, DLA, DenseNet (#2870, gracias a ghaith-mq), CoaT, ConViT, ConvMixer, CrossViT, HRNet, Inception-v3, Inception-ResNet-v2, NASNet, PNASNet, SelecSLS, SENet, Sequencer2d, VGG, Visformer, Xception y Aligned Xception, conprune_intermediate_layers()para los codificadores de NaFlexViT y MobileNetV5. CoaT, ConViT, ConvMixer, CrossViT y Visformer obtienen soporte parafeatures_only.prune_intermediate_layers()correccionesprune_head=Trueelimina la cabeza completa (normalización de la cabeza, capas previas a los logits, pooling de atención) para que el modelo podado no deje parámetros sin usar (DDP sinfind_unused_parameters), excepto CoaT, CrossViT y HRNet cuando solo se toman algunas de sus escalas / ramas paralelas. Pasaprune_head=Falsepara conservarla.- Recortar un modelo jerárquico a una etapa anterior elimina la normalización final y la cabeza dimensionadas para la última etapa,
forward_features()termina en la última característica conservada ynum_features/head_hidden_sizecoinciden con ella. Recortar a la característica del tallo elimina el agrupamiento del tallo que viene después. - Correcciones para el checkpointing de gradientes,
stop_early, eliminación del token de clase / de la red posterior, y TorchScript de modelos podados /feature_cls='getter'en muchas familias.
head_hidden_sizees el ancho real pre-logits (agregado) en todos los modelos, incluido el pooling de concatenación (catavgmax) y después dereset_classifier(). Los tipos de pooling que un modelo no puede aplicar ahora generan un error en la creación / reinicio en lugar de ser ignorados silenciosamente o fallar en el forward.- Otros arreglos: la salida de VOLO con
num_classes=0es el embedding del token de clase (coincide conforward_head(pre_logits=True)),vit_pe_corereset_classifier()con un pool que no seamapelimina el pool de atención, la exportación del tipo de pool mediantesave_for_hflee el pooling actual de la cabeza, y los checkpoints de Swin, SwinV2, DaViT y NextViT sin cabeza (num_classes=0) se recargan correctamente.
13 de octubre de 2026
- Barridos de hiperparámetros mediante un nuevo
sweep.py: búsqueda por cuadrícula / aleatoria sobre cualquier argumento detrain.py, un--configefectivo por trabajo, ejecutado en un grupo de GPUs locales y reanudable. Los barridos WSD entrenan un tronco estable por combinación de hiperparámetros y ramifican enfriamientos independientes desde sus puntos de control de hito, comparando el recocido en varios presupuestos por una fracción del costo de ejecuciones completas. Consulte la documentación de entrenamiento. train.py:--resume autoreanuda en el mismo lugar desde ellast.pth.tarpropio del experimento (el historial de puntos de control,model_bestysummary.csvse mantienen consistentes),--stop-epoch Ndetiene sin cambiar el plan,--save-epochs N [N ...]conserva instantáneasmilestone-N.pth.tary los valores de YAML de--configse validan contra los argumentos del script.- Se deprecó
PlateauLRScheduler(--sched plateau). Los programadores detimmson funciones sin estado de la época o del número de actualizaciones; el programa de meseta basado en métricas nunca encajó con eso y su estado no se guarda en el punto de control, por lo que la reanudación nunca fue exacta. Usecosineowsd. - Docs: nueva página Model API, páginas generadas de familias de modelos para cada módulo de modelo que reemplazan a las antiguas páginas por modelo, y páginas de referencia ampliadas de datos / pérdida / modelos.
- Correcciones de consistencia de la API de modelos:
reset_classifier()mantiene el pooling actual en todos los modelos, los argumentos de constructor desconocidos generanTypeErroren todas partes,dynamic_img_sizede la familia Swin, decaimiento de lr por capa en LeViT, nombres deno_weight_decayque no coincidían con ningún parámetro (NesT, SwinV2, XCiT, FocalNet), estado de redimensionamiento registrado para todas las familias deset_input_size. - Correcciones: GCViT mezclaba imágenes de consulta global dentro de un lote, checkpointing de gradiente para RDNet y MobileNetV5, tamaño de entrada de prueba obsoleto para
save_for_hf, redimensionado rectangular para EfficientViT (MSRA), errores de conversión de imagen en ImageDataset (#2846).reparameterize_modelmovido atimm.models.
9 de octubre de 2026
- Se añadió CSPNeXt (backbone de RTMDet)
cspnext_{tiny,s,m,l,x}con pesos de clasificación ImageNet-1k convertidos desde OpenMMLab. Gracias a Munehiro Kobayashi. - Mejoras en los optimizadores
- Implementaciones Foreach (multi-tensor) para RMSpropTF, LaProp, LAMB, LARS y AdaBelief. Los pasos Foreach se dividen en bloques según el tamaño de la caché L2 del dispositivo (
TIMM_FOREACH_CHUNK_SIZEpara sobrescribirlo). - Recorte de actualización RMS (
clipping_threshold) para AdamWLegacy / NAdamW, nuevas variantes desacopladas / corregidas de decaimiento de peso NovoGrad (novogradw,novogradc). - Correcciones de exactitud en muchos optimizadores, incluyendo la corrección del decaimiento de pesos con lr de tensor actualizado in-place, la detención de actualizaciones FP16 con lr pequeño, el manejo de estado de baja precisión (Kron, AdaBelief, NovoGrad) y la eliminación de la modificación in-place de
p.grad. - Correcciones de
torch.compile/ CUDA graph para Adopt, SGDW, AdafactorBV. - Nueva documentación del optimizador que cubre el uso, las convenciones de nomenclatura y las familias.
- Implementaciones Foreach (multi-tensor) para RMSpropTF, LaProp, LAMB, LARS y AdaBelief. Los pasos Foreach se dividen en bloques según el tamaño de la caché L2 del dispositivo (
- Agrega el programador de LR WSD (warmup-stable-decay) (
--sched wsd,--lr-decay-fn,--lr-stable-timescale). - Correcciones de EMA del modelo para modelos bfloat16 / float16. Los EMA bfloat16 de ModelEmaV3 usan redondeo estocástico de forma predeterminada, mientras que los modelos float16 mantienen un EMA float32.
- Redimensionamiento de modelos mediante
set_input_size()- Ampliación del soporte para modelos con ventanas (MaxViT, CoAtNet, BEiT, EfficientViT-MSRA, ViT con relpos, familia Swin).
- Swin / SwinV2 / SwinV2-CR mantienen la proporción de ventana a cuadrícula de cada etapa al redimensionar; una llamada con el tamaño actual ahora no realiza ninguna acción. Se admite
window_size/window_ratiopor etapa. Corrige los modelos Swin S3 y SwinV2window16/window12que cambiaban las salidas en una llamada con el mismo tamaño. - Corrige los valores NaN en SwinV2 con un tamaño de ventana de 1, tamaños de características de etapa impares y redimensionamiento híbrido de ViT en CUDA / baja precisión.
- Corrección del manejo del resto de la acumulación de gradientes (#2821), muestreo distribuido / aumento repetido en conjuntos de datos pequeños, sobrescritura de la fuente preentrenada y configuración del maestro de destilación,
train.pycon--sched none, e interpolación del recorte central de evaluación para entradas no cuadradas. - Correcciones de compatibilidad de exportación a ONNX entre versiones de PyTorch, correcciones de consistencia de dropout y más correcciones de inicialización en meta-device.
25 de septiembre de 2026
- Soporte para clasificación multietiqueta
- Añada
--task multilabelatrain.py/validate.py, entrenado con BCE (MultiLabelClassificationTask). Consulte la documentación de entrenamiento para más detalles. - Los objetivos pueden ser listas de índices de clase, vectores multi-hot densos (
--target-format multihot) o un campo binario por clase (--target-key a,b,c), con rutas/hacia campos anidados. Admitido por los lectoreshfds,hfids,tfds(claves de múltiples campos) ywds. - Los cargadores de Mixup / CutMix y NaFlex admiten objetivos multietiqueta. El suavizado de etiquetas (label smoothing) desplaza cada objetivo hacia 0,5 y su valor predeterminado es 0 para multietiquetas.
- La validación informa mAP (la métrica de evaluación predeterminada
--eval-metric) además de F1 micro, macro y por muestra, con un umbral de F1 definido por--multilabel-threshold. - Los nuevos evaluadores a nivel de conjunto de datos calculan métricas sobre el conjunto de validación completo a través de los rangos distribuidos, excluyendo el relleno del muestreador distribuido.
- Vea la colección timm multi-label image datasets en el Hub para ver ejemplos de conjuntos de datos de referencia que funcionan sin configuración adicional.
- Añada
- Nuevas opciones de pérdida mediante
--loss- Pérdidas Poly-1, Two-way, ZLPR y Distribution-Balanced.
- Ponderación por frecuencia de clase para BCE / ASL, calculada a partir de las cuentas de etiquetas recopiladas por
class_weights.py. - ASL ahora es seguro para fp16 y usa
batchmeancomo reducción predeterminada
- Refactor de RoPE
Extiende la aumentación de coordenadas de RoPE solo para entrenamiento (desplazamiento, jitter, reescalado) a los embeddings axial, mixto y MRoPE, compartiendo helpers con DINOv3 mientras se preserva su comportamiento de aumentación existente. Añade las opciones grid_type y normalize_coords a los constructores de Fourier / rotatorio (build_fourier_pos_embed, build_rotary_pos_embed) y a los módulos de RoPE axial, y secciones de MRoPE configurables en EVA. Soporta rotate_half en RotaryEmbedding con salida en tupla y en la variante de fábrica base. Corrige el reenvío del layout de rotación en EVA, NaFlexViT y el pooling de atención de MRoPE. Mantiene los buffers de frecuencia y coordenadas de RoPE no aprendidos al menos en float32 en modelos half/bfloat16, y calcula las fases de RoPE mixto en float32 bajo autocast. Estas correcciones de precisión pueden cambiar las salidas de modelos de baja precisión. Corrige los embeddings de RoPE por lotes para cuadrículas de píxeles y el reescalado de forma de referencia. DINOv3 con grid_indexing='xy' ahora intercambia los canales de coordenadas como se solicitaba; las salidas para estas configuraciones previamente incorrectas cambian. Hace que apply_rot_embed, apply_rot_embed_cat y apply_rot_embed_list devuelvan el dtype de cada entrada, realizando el casteo después de la rotación sin antes reducir el casteo de sin/cos. Unifica los dos módulos de RoPE axial detrás de una base privada. Las llamadas existentes siguen siendo compatibles, pero el buffer de bandas ahora se retiene en ambos modos, en cacheado y dinámico (rope.bands ya no es None en modo cacheado).
- Extender la aumentación de coordenadas RoPE solo para entrenamiento (desplazamiento, jitter, reescalado) a los embeddings axial, mixto y MRoPE, compartiendo los helpers con DINOv3 mientras se preserva su comportamiento de aumentación existente.
- Agregue las opciones
grid_typeynormalize_coordsa los constructores de Fourier / rotatorio (build_fourier_pos_embed,build_rotary_pos_embed) y a los módulos de RoPE axial, y secciones de MRoPE configurables en EVA. - Soporte de
rotate_halfen la salida de tupla deRotaryEmbeddingy en la variante de fábricabase. - Corrección del reenvío de la disposición de rotación en la agrupación de atención de EVA, NaFlexViT y MRoPE.
- Mantén los búferes de frecuencia y coordenadas de RoPE no aprendidos al menos en float32 en modelos half/bfloat16, y calcula las fases de RoPE mixtas en float32 bajo autocast. Estas correcciones de precisión pueden cambiar las salidas de los modelos de baja precisión.
- Corrección de las incrustaciones RoPE por lotes para cuadrículas de píxeles y el reescalado de la forma de referencia. DINOv3 con
grid_indexing='xy'ahora intercambia los canales de coordenadas como se solicita; los resultados para estas configuraciones previamente incorrectas cambian. - Haz que
apply_rot_embed,apply_rot_embed_catyapply_rot_embed_listdevuelvan el dtype de cada entrada, realizando el casteo después de la rotación sin reducir previamente el dtype de sin/cos. - Consolida los dos módulos axiales de RoPE detrás de una base privada. Las llamadas existentes siguen siendo compatibles, pero el búfer
bandsahora se conserva en ambos modos, en caché y dinámico (rope.bandsya no esNoneen el modo en caché).
- Correcciones para el cambio de modo de entrenamiento/evaluación y el cambio de dtype en LeViT y modelos relacionados (EfficentFormer*, EfficientViT-MSRA, TinyViT) con sesgos de atención en caché.
22 de septiembre de 2026
- Añade los pesos de la torre de visión de Qwen-Drive-1.0-4B.
- Corregir la reutilización/sincronización de la secuencia del cargador de prebúsqueda y AugMix para imágenes no cuadradas y de banda única.
- Corrección de la escalada de la tasa de aprendizaje de conv en AdaMuon, el recorte en AdafactorBigVision, el historial de gradientes en MARS y la carga de puntos de control en Kron.
- Corregir las cachés obsoletas de sesgo de atención en la evaluación, los metadatos de características del modelo podado, el relleno del max-pooling dilatado y el modo de gradiente de pérdida asimétrica.
- Release 1.0.30
10-11 de septiembre de 2026
- Añade variantes de clasificador y codificador ViT para Qwen3-VL / Qwen3.5 / Qwen3.8, incluidos clasificadores con y sin el fusor espacial nativo.
- Se agregaron los ViT de Sapiens2 con soporte para EVA y NaFlexViT. Ambas adiciones de modelos incluyen pesos nativos de timm Hub. Gracias a Yonghye Kwon.
- Añade iFormer con pesos nativos de timm Hub. Gracias a Ryan Hou.
- Agrega EfficientViM con pesos nativos de timm Hub. Gracias a smellslikeml.
- Añade clasificadores y codificadores ViT de DeepSeek-V4 / V4.1 con pesos nativos de timm Hub. Gracias a Yonghye Kwon.
- Cambiar la interpolación de posición predeterminada de NaFlex SigLIP, la selección del tamaño de entrada de
inference.pyy mejorar el análisis de--model-kwargs. - Corrección de la construcción en meta-device y del soporte de fábrica de device/dtype para algunos modelos; traslado de las pruebas de configuración a meta para una CI más rápida, cobertura del contexto meta.
27 de agosto de 2026
- Agregar el modelo y los pesos de LowFormer
- Corregir o fusionar una serie de errores reales, pero pequeños o poco frecuentes, detectados por agentes
- Release 1.0.29
11 de agosto de 2026
- Añade definiciones de modelos y pesos preentrenados para
- CPUBone, un backbone de visión eficiente para dispositivos con capacidades de paralelización bajas.
- PP-LCNetV2.
- LingBot-Vision.
- Agrega la programación de imágenes por lote y el tamaño del lote para el entrenamiento no-NaFlex, incluidos los horarios de resolución progresiva de pequeño a grande.
- Mejore NaFlexViT con máscaras de atención solo de claves, muestreo de posiciones compatible con compilación y eficiente en memoria, e interpolación de parches variables con caché.
- Mejorar la ruta de la fábrica de modelos y el manejo de puntos de control; corregir el muestreo de nuevo de las incrustaciones posicionales de tokens iguales.
10 de julio de 2026
- Mejorar el optimizador
torch.compiley la compatibilidad con la tasa de aprendizaje de los tensores. - Extender el patch-layout de NaFlexViT (para NaFlex-CLAP) y el soporte de
forward_intermediates(entrada de diccionario NaFlex). - Endurecer la carga de pickle y mejorar la inferencia con etiquetas personalizadas.
- Release 1.0.28
27 de mayo de 2026
- Agregue definiciones de modelos y pesos preentrenados para los modelos EUPE ViT (estilo DINOv3) y ConvNeXt. Consulte el artículo Efficient Universal Perception Encoder.
- Agregue las definiciones de modelos y los pesos preentrenados de TIPSv2 para ViTs (estilo DINOv2). Consulte el artículo de TIPSv2.
8 de mayo de 2026
- Release 1.0.27
23 de abril de 2026
- Añade codificadores ViT de Gemma4 con soporte para el pipeline NaFlex (aspecto/tamaño variable por imagen). Gracias a Yonghye Kwon
- Soporte para pesos de DINOv3 en NaFlexVit. Gracias a Yonghye Kwon
- Algunas mejoras al comportamiento de lr en la alternativa de Muon (AdamW/NadamW)
23 de marzo de 2026
- Mejorar la seguridad en el manejo de puntos de control de pickle. Establecer
weights_only=Truecomo valor predeterminado para todas las cargas y añadir safe_global para ArgParse. - Mejorar el manejo de la máscara de atención para los modelos y capas principales de ViT/EVA. Resolver máscaras bool, pasar
is_causalpara tareas de SSL. - Corregir el uso de la clase y el registro de tokens con ViT y sin pos embed habilitado.
- Añade la Refinación de la Representación de Parches (PRR) como una opción de agrupación en ViT. Gracias a Sina (https://github.com/sinahmr).
- Mejorar la coherencia de las dimensiones de la proyección de salida / MLP para las capas de pooling de atención.
- Optimización de F.SDPA del modelo Hiera para permitir el uso del kernel de Flash Attention.
- Se añadió una advertencia al optimizador SGDP.
- Liberación 1.0.26. Primera liberación de mantenimiento desde mi salida de Hugging Face.
23 de febrero de 2026
- Añadir soporte para el entrenamiento de destilación de tokens a los envoltorios de tareas de destilación
- Eliminar algunos usos de torch.jit en preparación para la deprecación oficial
- Precaución añadida al optimizador AdamP
- Llama a reset_parameters() incluso si la inicialización es en el dispositivo meta, para que los búferes se inicialicen con trucos como init_empty_weights
- Ajustar el optimizador Muon para que funcione con DTensor/FSDP2 (usar instead of clamp_min, rama NS alternativa para DTensor)
- Release 1.0.25
21 de enero de 2026
- Compat Break: Corrección de un error con el sesgo de QKV frente a MLP en
ParallelScalingBlock(&DiffParallelScalingBlock)- No afecta a ningún modelo de
timmentrenado, pero podría afectar su uso posterior.
- No afecta a ningún modelo de
5 y 6 de enero de 2026
- Release 1.0.24
- Añadir nuevos archivos csv de resultados de benchmark para el tiempo de inferencia en todos los modelos con tarjetas RTX Pro 6000, 5090 y 4090 con PyTorch 2.9.1
- Corregir el error de módulo movido en la ruta de importación obsoleta timm.models.layers que afecta a las importaciones heredadas
- Release 1.0.23
30 de diciembre de 2025
- Añadir ViTs (diferenciales) entrenados con NAdaMuon
dpwee,dwee,dlittle(con una pequeña mejora sobre las ejecuciones anteriores - Añadir una variante de ~21M de parámetros de
timmdel modelo CSATv2 en 512x512 y 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)
- Extraer la inicialización de parámetros no persistentes de
__init__en un método común que se pueda llamar externamente medianteinit_non_persistent_buffers()después de la inicialización en el dispositivo meta.
12 de diciembre de 2025
- Añade el modelo CSATV2 (gracias a https://github.com/gusdlf93) — un modelo ligero pero de alta resolución con tallo DCT & atención espacial. https://huggingface.co/Hyunil/CSATv2
- Agregue soporte para los optimizadores AdaMuon y NAdaMuon a la implementación de Muon existente de
timm. Parece más competitivo que AdamW con hiperparámetros familiares para tareas de imagen. - Limpieza de PRs de fin de año, fusión de aspectos de varias PR abiertas desde hace mucho
- Fusionar la atención diferencial (
DiffAttention), y agregar el correspondienteDiffParallelScalingBlock(para ViT), entrenar algunos ViT pequeños - Agrega algunos módulos de pooling,
LsePlusySimPool - Limpieza y optimización de
DropBlock2d(también se añade soporte para modelos basados en ByobNet)
- Fusionar la atención diferencial (
- Actualizar las pruebas unitarias a PyTorch 2.9.1 + Python 3.13 en el extremo superior, y mantener PyTorch 1.13 + Python 3.10 en el extremo inferior
1 de diciembre de 2025
- Añade una abstracción de tareas ligera y añade soporte para la destilación de logits y características al script de entrenamiento mediante nuevas tareas.
- Eliminar el soporte antiguo de APEX AMP
4 de noviembre de 2025
- Corregir el error de inicialización de LayerScale / LayerScale2d (los valores de inicialización se ignoraban), introducido en 1.0.21. Gracias a https://github.com/Ilya-Fradlin
- Release 1.0.22
31 de octubre de 2025 🎃
- Actualizar los archivos csv de resultados de imagenet y la variante OOD para incluir algunos modelos nuevos y verificar la corrección en varias versiones de torch y timm
- Se añadieron los pesos de los modelos EfficientNet-X y EfficientNet-H B5 como parte de una búsqueda de hiperparámetros para AdamW frente a Muon (aún iterando en las ejecuciones de Muon)
16-20 de octubre de 2025
- Añade una implementación del optimizador Muon (basada en https://github.com/KellerJordan/Muon) con personalizaciones
- flexibilidad adicional y mejor manejo para los pesos de convolución y alternativas para formas de pesos no aptas para la ortogonalización
- Pequeña mejora de velocidad para las iteraciones de NS al reducir las asignaciones y usar operaciones (b)add(b)mm fusionadas
- por defecto, utiliza actualizaciones de AdamW (o NAdamW si
nesterov=True) cuando muon no es adecuado para la forma del parámetro (o está excluido mediante la bandera de grupo de parámetros) - como la implementación de torch, selecciona entre varias funciones de ajuste de escala de LR mediante
adjust_lr_fn - seleccionar entre varios presets de coeficientes NS o especificar los propios mediante
ns_coefficients
- Se admiten los primeros 2 pasos de la inicialización del modelo de dispositivo «meta»
- Corregir varias operaciones que estaban rompiendo la creación en el contexto de dispositivo ‘meta’
- Agregue soporte para argumentos de fábrica de dispositivo y dtype a todos los modelos y módulos (cualquier cosa que herede de nn.Module) en
timm
- Campos de licencia añadidos a las cfgs preentrenadas en el código
- Release 1.0.21
21 de septiembre de 2025
- Remapear las etiquetas de pesos de DINOv3 ViT de
lvd_1689m->lvd1689mpara que coincidan (lo mismo parasat_493m->sat493m) - Release 1.0.20
17 de septiembre de 2025
- DINOv3 (https://arxiv.org/abs/2508.10104) Se añadieron modelos ConvNeXt y ViT. Los modelos ConvNeXt se mapearon al modelo existente de
timm. El soporte para ViT se realizó mediante el modelo base EVA con una nuevaRotaryEmbeddingDinoV3para coincidir con la implementación específica de RoPE de DINOv3. - Codificadores de visión de MobileCLIP-2 (https://arxiv.org/abs/2508.20691). Se añadieron nuevas variantes MCI3/MCI4 FastViT y se mapearon los pesos a los ViTs FastViT y B, L/14 existentes.
- Se añadieron los pesos del codificador ViT de MetaCLIP-2 Worldwide (https://arxiv.org/abs/2507.22062).
- SigLIP-2 (https://arxiv.org/abs/2502.14786) Pesos del codificador NaFlex ViT agregados mediante el modelo NaFlexViT de timm.
- Correcciones y contribuciones varias
23 de julio de 2025
- Agregue el método
set_input_size()a los modelos EVA, utilizado por OpenCLIP 3.0.0 para permitir el redimensionamiento de los modelos de codificador basados en timm. - Liberación 1.0.18, necesaria para los modelos PE-Core S & T en OpenCLIP 3.0.0
- Corrección de un pequeño problema de tipado que rompía la compatibilidad con Python 3.9. Liberación de parche 1.0.19.
21 de julio de 2025
- Se añadió soporte para ROPE en NaFlexViT. Todos los modelos cubiertos por la base EVA (
eva.py), incluidos EVA, EVA02, Meta PE ViT, SBB ViT detimmcon ROPE y Naver ROPE-ViT, ahora pueden cargarse en NaFlexViT cuando se pasause_naflex=Trueen el momento de la creación del modelo - Se han añadido más codificadores Meta PE ViT, incluidas variantes small/tiny, variantes de idioma con tiling y más variantes espaciales.
- PatchDropout corregido con NaFlexViT y también con los modelos EVA (regresión tras añadir Naver ROPE-ViT)
- Corrección del orden XY con grid_indexing='xy', afectando el uso de imágenes no cuadradas en modo 'xy' (solo se ven afectadas ROPE-ViT y PE).
7 de julio de 2025
- Ajustes del backbone MobileNet-v5 para mejorar el comportamiento de Google Gemma 3n (para usar con los pesos oficiales actualizados)
- Añadir sesgo del tallo (anulado en los pesos actualizados, incompatibilidad con los pesos antiguos)
- GELU -> GELU (aproximación tanh). Un cambio menor para acercarse a JAX
- Añade dos argumentos al soporte de layer-decay: un clamp de escala mínima y un umbral de escala de 'sin optimización'
- Añade variantes de ‘Fp32’ LayerNorm, RMSNorm y SimpleNorm que se pueden habilitar para forzar el cálculo de la norma en float32
- Algunos ajustes de tipado y limpieza de argumentos para las capas norm y norm+act, realizados con lo anterior
- Soporte para Naver ROPE-ViT (https://github.com/naver-ai/rope-vit) en
eva.py, añade el módulo RotaryEmbeddingMixed para el modo mixto, pesos en 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 |
- Algunas tareas de limpieza de los módulos, auxiliares y el registro de hojas del trazado FX de ROPE
- Preparando la versión 1.0.17
26 de junio de 2025
- Backbone MobileNetV5 (variante solo con codificador) para el codificador de imágenes de Gemma 3n
- Versión 1.0.16 publicada
23 de junio de 2025
Agrega redimensionamiento de pos embed 2D y factorizado basado en F.grid_sample a NaFlexViT. Más rápido cuando hay muchos tamaños diferentes (basado en un ejemplo de https://github.com/stas-sl).
Acelerar aún más el re-muestreo de la incrustación de parches reemplazando vmap con matmul (basado en un fragmento de https://github.com/stas-sl).
Añada 3 puntos de control nativos de aspecto NaFlexViT iniciales creados durante las pruebas, ImageNet-1k y 3 configuraciones de pos embed diferentes con los mismos hparams.
Modelo Precisión Top-1 Top-5 Prec Parámetros (M) Longitud de la secuencia de evaluación 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 Soporte para gradient checkpointing en
forward_intermediatesy corrección de algunos errores de checkpointing. Gracias a https://github.com/brianhou0208Añade el ‘corrected weight decay’ (https://arxiv.org/abs/2506.02285) como opción para los optimizadores AdamW (legacy), Adopt, Kron, Adafactor (BV), Lamb, LaProp, Lion, NadamW, RmsPropTF, SGDW
Cambiar los modelos PE (codificador de percepción) ViT para que usen pesos nativos de timm en lugar de remapearlos sobre la marcha
Corregir el error de stream de cuda en el prefetch loader
5 de junio de 2025
- Código inicial del modelo NaFlexVit. NaFlexVit es un Vision Transformer con:
- Incorporación de la codificación de incrustación y la codificación de posición en un único módulo
- Soporte para la incrustación de parches de nn.Linear en entradas pre-parchificadas (diccionario)
- Soporte para aspecto variable y resolución variable de NaFlex (SigLip-2: https://arxiv.org/abs/2502.14786)
- Soporte para el tamaño de parche variable de FlexiViT (https://arxiv.org/abs/2212.08013)
- Soporte para la incrustación de posición fraccional/factorizada de NaViT (https://arxiv.org/abs/2307.06304)
- Los modelos vit existentes en
vision_transformer.pyse pueden cargar en el modelo NaFlexVit añadiendo la banderause_naflex=Trueacreate_model- Algunos pesos nativos próximamente
- Hay disponible un pipeline de datos NaFlex completo que permite entrenar, ajustar y evaluar con imágenes de aspecto y tamaño variables
- Para habilitarlo en
train.pyyvalidate.py, añade el argumento--naflex-loader; debe usarse con un NaFlexVit
- Para habilitarlo en
- Para evaluar un ViT existente (clásico) cargado en el modelo NaFlexVit con el pipeline de datos de 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
- El entrenamiento tiene algunas características adicionales de argumentos que vale la pena destacar
- El argumento
--naflex-train-seq-lens'especifica qué longitudes de secuencia se eligen aleatoriamente por lote durante el entrenamiento - El argumento
--naflex-max-seq-lenestablece la longitud de secuencia objetivo para la validación - Agregar
--model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24habilitará la selección aleatoria del tamaño de parche por lote con interpolación - El argumento
--naflex-loss-scalecambia el modo de escalado de la pérdida por lote en relación con el tamaño del lote, mientras que la carga NaFlex detimmcambia el tamaño del lote para cada longitud de secuencia
- El argumento
28 de mayo de 2025
- Añade varios modelos pequeños y rápidos gracias a 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 con memoria eficiente
- StarNet - (CVPR2024) Reescribe las estrellas
- GhostNet-V3 GhostNetV3: Explorando las estrategias de entrenamiento para modelos compactos
- Actualizar EVA ViT (la coincidencia más cercana) para admitir los modelos Perception Encoder (https://arxiv.org/abs/2504.13181) de Meta, cargando pesos del Hub, pero aún necesito publicar pesos dedicados de
timmpesos- Añade cierta flexibilidad a la implementación de ROPE
- Gran aumento en el número de modelos que admiten
forward_intermediates()y algunas correcciones adicionales gracias a 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
- Modelo TNT actualizado con nuevos pesos
forward_intermediates()gracias a https://github.com/brianhou0208 - Añade el esquema preentrenado
local-dir:, puedes usarlocal-dir:/path/to/model/foldercomo nombre del modelo para obtener la configuración y los pesos preentrenados de los modelos de Hugging Face Hub (config.json + archivo de pesos) desde una carpeta local. - Correcciones y mejoras para la exportación a onnx
21 de febrero de 2025
- Se añadieron codificadores de imagen ViT de SigLIP 2 (https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
- Las versiones de NaFlex con resolución / relación de aspecto variable están en desarrollo
- Se agregaron los pesos de ViT 'SO150M2' entrenados con recetas SBB, excelentes resultados, mejores en ImageNet que el intento anterior con menos entrenamiento.
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
- Pesos de InternViT-300M ‘2.5’ actualizados
- Release 1.0.15
1 de febrero de 2025
- Por si les interesa, PyTorch 2.6 y Python 3.13 se han probado y funcionan con la versión actual de main y la versión publicada de
timm
27 de enero de 2025
- Agregar el optimizador Kron (PSGD con precondicionador factorizado de Kronecker)
- Código de https://github.com/evanatyourservice/kron_torch
- Véase también https://sites.google.com/site/lixilinx/home/psgd
19 de enero de 2025
- Corregir la carga de pesos safetensor de LeViT, eliminar el código de conversión que debería haberse desactivado
- Añade pesos de ViT 'SO150M' entrenados con recetas SBB, resultados decentes, pero no la forma óptima para preentrenamiento/ajuste fino en 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
- Limpieza de errores tipográficos y de escritura
- Liberación 1.0.14 para publicar la corrección de LeViT
9 de enero de 2025
- Agregar soporte para entrenar y validar en
bfloat16ofloat16puros - Se añadió el argumento de nombre de proyecto de
wandbpor https://github.com/caojiaolong, usa arg.experiment para el nombre - Corregir un problema antiguo por el que el guardado de puntos de control no funcionaba en sistemas de archivos sin soporte para enlaces duros (p. ej., montajes de sistemas de archivos FUSE)
- Liberación 1.0.13
6 de enero de 2025
- Agregue el envoltorio
torch.utils.checkpoint.checkpoint()entimm.modelsque usause_reentrant=Falsede forma predeterminada, a menos que se establezcaTIMM_REENTRANT_CKPT=1en el entorno.
31 de diciembre de 2024
convnext_nano384x384 preentrenamiento y ajuste fino en ImageNet-12k. https://huggingface.co/models?search=convnext_nano%20r384- Añada codificadores AIM-v2 desde https://github.com/apple/ml-aim, véase en Hub: https://huggingface.co/models?search=timm%20aimv2
- Añada los codificadores de PaliGemma2 de https://github.com/google-research/big_vision a PaliGemma existente, véase en Hub: https://huggingface.co/models?search=timm%20pali2
- Añadir el CLIP ViT L/14 DFN2B 39B que falta,
vit_large_patch14_clip_224.dfn2b_s39b - Corregir la capa y la función
RmsNormexistentes para que coincidan con la formulación estándar, y usar la implementación de PT 2.5 cuando sea posible. Mover la implementación anterior a la capaSimpleNorm, que es LN sin centrado ni sesgo. Solo dos modelos detimmla usaban y se han actualizado. - Permitir la sobrescritura del argumento
cache_dirpara la creación de modelos - Pasar
trust_remote_codeal envoltorio de conjuntos de datos de HF - Modelo
inception_next_attoagregado por el creador - Precaución con el optimizador Adan y opciones de decaimiento desacoplado de peso para Lamb
- Algunos metadatos de feature_info corregidos por https://github.com/brianhou0208
- Todos los pesos de modelos de OpenCLIP y JAX (CLIP, SigLIP, Pali, etc.) que utilizaban remapeo en tiempo de carga recibieron sus propias instancias en HF Hub para que funcionen con la carga basada en
hf-hub:y, por lo tanto, funcionen con el nuevoTimmWrapperModelde Transformers
28 de noviembre de 2024
- Más optimizadores
- Añadir el optimizador MARS (https://arxiv.org/abs/2411.10438, https://github.com/AGI-Arena/MARS)
- Añadir el optimizador LaProp (https://arxiv.org/abs/2002.04839, https://github.com/Z-T-WANG/LaProp-Optimizer)
- Añada enmascaramiento de ‘Cautious Optimizers’ (https://arxiv.org/abs/2411.16085, https://github.com/kyleliang919/C-Optim) a Adafactor, Adafactor Big Vision, AdamW (legacy), Adopt, Lamb, LaProp, Lion, NadamW, RMSPropTF, SGDW
- Limpieza de algunas docstrings y anotaciones de tipos en relación con los optimizadores y la fábrica
- Añade modelos MobileNet-V4 Conv Medium preentrenados en in12k y ajustados en in1k @ 384x384
- https://huggingface.co/timm/mobilenetv4_conv_medium.e250_r384_in12k_ft_in1k
- https://huggingface.co/timm/mobilenetv4_conv_medium.e250_r384_in12k
- https://huggingface.co/timm/mobilenetv4_conv_medium.e180_ad_r384_in12k
- https://huggingface.co/timm/mobilenetv4_conv_medium.e180_r384_in12k
- Añade un pequeño cs3darknet, bastante bueno en cuanto a velocidad
12 de noviembre de 2024
- Refactor del factoría de optimizadores
- La nueva fábrica funciona registrando optimizadores mediante una dataclass OptimInfo con algunas características clave
- Añade
list_optimizers,get_optimizer_class,get_optimizer_infoa la funcióncreate_optimizer_v2rediseñada para explorar optimizadores, obtener información o la clase - deprecia
optim.optim_factory, mueve las funciones aoptim/_optim_factory.pyyoptim/_param_groups.pyy fomenta la importación a través detimm.optim
- Agregar el optimizador Adopt (https://github.com/iShohei220/adopt)
- Añadir la variante ‘Big Vision’ del optimizador Adafactor (https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
- Corregir el Adafactor original para elegir mejores dimensiones de factorización para las convoluciones
- Ajustar el optimizador LAMB con algunas mejoras en la funcionalidad de torch.where desde el original, refactorizar un poco el recorte
- Soporte para tamaño de imagen dinámico en vit, deit y eva, mejorado para admitir el redimensionamiento desde cuadrículas de parches no cuadrados, gracias a https://github.com/wojtke
31 de octubre de 2024
Añade un conjunto de nuevos pesos de ResNet y ResNet-V2 18/34 (bloque básico) muy bien entrenados. Consulta https://huggingface.co/blog/rwightman/resnet-trick-or-treat
19 de octubre de 2024
- Limpieza del uso de torch amp para evitar llamadas específicas de cuda, y fusión del soporte para dispositivos Ascend (NPU) de MengqingCao que ahora debería funcionar en PyTorch 2.5 con la nueva función de carga automática de extensiones de dispositivo. También se probó Intel Arc (XPU) en Pytorch 2.5 y funcionó (en su mayoría).
16 de octubre de 2024
- Corregir el error al importar desde la ruta obsoleta
timm.models.registryy aumentar la prioridad de las advertencias de obsolescencia existentes para que sean visibles - Portar los pesos de InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) a
timmcomovit_intern300m_patch14_448
14 de octubre de 2024
- Se añadieron las definiciones de los modelos ResNet 18/18d/34/34d en la versión de pre-activación (ResNetV2) a petición (pesos pendientes)
- Release 1.0.10
11 de octubre de 2024
- Añadido el modelo y los pesos de MambaOut (https://github.com/yuweihao/MambaOut). Una interpretación ingeniosa de los modelos de visión SSM sin SSM (básicamente ConvNeXt con gating). Una mezcla de pesos originales + variaciones y pesos personalizados.
- SigLIP SO400M ViT fine-tuned en ImageNet-1k @ 378x378, se añadió la opción 378x378 para los modelos existentes de SigLIP 384x384
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- Codificador ViT SigLIP SO400M de la variante multilingüe (i18n) reciente, patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). Actualización de OpenCLIP pendiente.
- Se añaden dos modelos y pesos de ConvNeXt 'Zepto' (uno con tallo superpuesto y otro con tallo de parche). Utiliza RMSNorm, es más pequeño que el anterior 'Atto', con 2,2 M de parámetros.
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 top-1 @ 224
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
Septiembre de 2024
- Añade una suite de modelos de prueba diminutos para mejorar las pruebas unitarias y las aplicaciones de nicho con recursos limitados (https://huggingface.co/blog/rwightman/timm-tiny-test)
- Añadir el modelo 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
- Añadir variantes de MobileNetV3-Large entrenadas con la receta 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 de agosto de 2024
- Modelos SBB ViT actualizados entrenados en ImageNet-12k y ajustados finamente en ImageNet-1k, que desafían a un buen número de modelos mucho más grandes y lentos
| 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 |
- Pesos de MobileNet-V1 1.25, EfficientNet-B1 y ResNet50-D con la receta de desafío de línea base 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 |
- Agregar soporte para la arquitectura del backbone y la carga de pesos de SAM2 (HieraDet)
- Añade los pesos de Hiera Small entrenados con abswin pos embed en in12k y ajustados en 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 de agosto de 2024
- Añade RDNet (‘DenseNets Reloaded’, https://arxiv.org/abs/2403.19588), gracias a Donghyun Kim
28 de julio de 2024
- Añade los pesos de
mobilenet_edgetpu_v2_mcon la receta basada enra4mnv4-small. 80,1% top-1 @ 224 y 80,7 @ 256. - Release 1.0.8
26 de julio de 2024
- Más pesos de MobileNet-v4, preentrenamiento en ImageNet-12k con ajustes finos y modelos ConvLarge con antialiasing
| 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 |
- Desafíos impresionantes de línea base de MobileNet-V1 y 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 |
- Prototipo de
set_input_size()añadido a los modelos vit y swin v1/v2 para permitir cambiar el tamaño de imagen, el tamaño de parche y el tamaño de ventana después de la creación del modelo. - Mejor soporte en swin para el manejo de diferentes tamaños; además de
set_input_size, se han añadido los argumentosalways_partitionystrict_img_sizea__init__para permitir restricciones de tamaño de entrada más flexibles - Corrige la información de índices desordenados para el envoltorio de características intermedio ‘Getter’ y verifica los índices de salida o de rango para el mismo.
- Añade varios modelos
tiny< .5M de parámetros para pruebas que realmente estén entrenados en 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 |
- Corregir la inicialización del token de registro de vit, gracias a Promisery
- Otros arreglos varios
24 de junio de 2024
- 3 pesos híbridos adicionales de MobileNetV4 con un esquema de inicialización de pesos MQA diferente
| 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 |
- carga de pesos de florence2 en el modelo DaViT
12 de junio de 2024
- Se añadieron los modelos MobileNetV4 y el conjunto inicial de pesos entrenados con
timm:
- Soporte y pesos del modelo de torre de imágenes Apple MobileCLIP (https://arxiv.org/pdf/2311.17049, FastViT y ViT-B) añadidos (parte del soporte de OpenCLIP).
- Se añadieron el modelo y los pesos de la torre de imágenes CLIP de ViTamin (https://arxiv.org/abs/2404.02132) (parte del soporte de OpenCLIP).
- Soporte para modelado y pesos de la torre de imágenes ResNet modificada de OpenAI CLIP (vía ByobNet). Refactorización de AttentionPool2d.
14 de mayo de 2024
- Soporte para cargar pesos jax de PaliGemma en modelos SigLIP ViT con average pooling.
- Añade los modelos Hiera de Meta (https://github.com/facebookresearch/hiera).
- Añade la bandera
normalize=para las transformaciones, devuelve un torch.Tensor no normalizado con el tipo de datos original (parachug) - Lanzamiento de la versión 1.0.3
11 de mayo de 2024
Searching for Better ViT Baselines (For the GPU Poor)pesos y variantes de ViT publicadas. Explorando formas de modelo entre Tiny y 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 |
- AttentionExtract: se añadió un helper para extraer mapas de atención de modelos de
timm. Consulta el ejemplo en https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949 - La API
forward_intermediates()se ha refinado y añadido a más modelos, incluidos algunos ConvNets que tienen otros métodos de extracción. - 1017 de las 1047 arquitecturas de modelos admiten la extracción de características con
features_only=True. Las 34 arquitecturas restantes pueden admitirse, pero se priorizarán según las solicitudes. - Eliminar las funciones anotadas con torch.jit.script, incluidas las activaciones JIT antiguas. Conflictan con dynamo y dynamo hace un trabajo mucho mejor cuando se usa.
11 de abril de 2024
- Preparándonos para la tan esperada versión 1.0, las cosas han estado estables durante un tiempo.
- Función importante que llevaba tiempo ausente: soporte para
features_only=Trueen modelos ViT con estados ocultos planos o disposiciones de módulos no estándar (hasta ahora cubre'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*') - El soporte de la característica anterior se logra mediante una nueva API
forward_intermediates()que puede usarse con un módulo de envoltura de características o directamente.
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])- Se añadieron los pesos de la torre de visión de TinyCLIP, gracias a Thien Tran
19 de febrero de 2024
- Se añadieron los modelos Next-ViT. Adaptados de https://github.com/bytedance/Next-ViT
- Se añadieron los modelos HGNet y PP-HGNetV2. Adaptados de https://github.com/PaddlePaddle/PaddleClas por SeeFun
- Se eliminó setup.py y se pasó a un sistema de compilación basado en pyproject.toml, compatible con PDM
- Añada la implementación actualizada del EMA del modelo usando _for_each para reducir la sobrecarga
- Soporte para argumentos de dispositivo en el script de entrenamiento para dispositivos que no son GPU
- Otros arreglos varios y pequeñas adiciones
- La versión mínima de Python soportada se ha aumentado a 3.8
- Release 0.9.16
8 de enero de 2024
Refactorización de conjuntos de datos y transformaciones
- Soporte para conjuntos de datos de streaming (iterables) de HuggingFace (
--dataset hfids:org/dataset) - Ajustes del envoltorio de Webdataset para mejorar la obtención de información de divisiones; puede obtener automáticamente las divisiones desde webdatasets compatibles en el hub de HF
- Se probaron el streaming de
datasetsde HF y el envoltorio de webdataset desde el hub de HF con las cargas recientes de ImageNet detimmen https://huggingface.co/timm - Hacer que las claves de columna/campo de entrada y objetivo sean consistentes en todos los conjuntos de datos y pasarlas a través de args
- Soporte completo de monocromo al usar, por ejemplo,
--input-size 1 224 224o--in-chans 1, configura la conversión de imágenes de PIL de manera adecuada en el conjunto de datos - Mejoramos varias transformaciones alternativas de recorte y redimensionado (ResizeKeepRatio, RandomCropOrPad, etc.) para su uso en el proyecto de IA de documentos de PixParse
- Añade la probabilidad de ajuste de color estilo SimCLR, junto con las opciones de escala de grises y desenfoque gaussiano, a las aumentaciones y los argumentos
- Permitir el entrenamiento sin un conjunto de validación (
--val-split '') en el script de entrenamiento - Agrega los argumentos
--bce-sum(suma sobre la dimensión de clase) y--bce-pos-weight(ponderación positiva) para el entrenamiento, ya que son ajustes comunes de la pérdida BCE que a menudo codificaba de forma manual
23 de noviembre de 2023
- Se añadieron los modelos EfficientViT-Large, gracias a SeeFun
- Corregir la compatibilidad con Python 3.7, pronto se dejará de dar soporte
- Otros arreglos varios
- Release 0.9.12
20 de noviembre de 2023
- Se añadió una flexibilidad significativa para los modelos timm basados en Hugging Face Hub a través de la entrada de configuración
model_args.model_argsse pasará como kwargs a los modelos en su creación. Consulta el ejemplo en https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json Uso: https://github.com/huggingface/pytorch-image-models/discussions/2035 - Actualizados los archivos csv de evaluación y conjunto de pruebas de imagenet con los modelos más recientes
- Limpieza de tipos y documentación en
vision_transformer.pypor Laureηt - Liberación 0.9.11
3 de noviembre de 2023
- Se añadieron los pesos de ViT de DFN (Data Filtering Networks) y MetaCLIP
- Se añadieron los pesos del modelo ViT de DINOv2 con 'register' (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
- Añade variantes de ViT
quickgelupara los pesos de OpenAI, DFN y MetaCLIP que lo utilizan (menos eficiente) - Se añadió la mejora de tipado a ResNet y MobileNet-v3 gracias a Aryan
- Fine-tuned en ImageNet-12k (a partir de CLIP de LAION-2B)
convnext_xxlarge - Liberación 0.9.9
20 de octubre de 2023
- SigLIP pesos de la torre de imagen compatibles con
vision_transformer.py.- Gran potencial para el ajuste fino y el uso de características en tareas posteriores.
- Soporte experimental de ‘register’ en modelos vit según Vision Transformers Need Registers
- Actualizado RepViT con la nueva publicación de pesos. Gracias a wangao
- Añadir soporte para el redimensionado de parches (al cargar pesos preentrenados) a los modelos Swin
- Liberación 0.9.8 pendiente
1 de septiembre de 2023
- TinyViT añadido por SeeFun
- Corregir EfficientViT (MIT) para que use torch.autocast y funcione hasta PT 1.10
- Liberación 0.9.7
28 de agosto de 2023
- Agregar soporte para tamaño de imagen dinámico a los modelos en
vision_transformer.py,vision_transformer_hybrid.py,deit.py, yeva.pysin romper la compatibilidad hacia atrás. Agregar dynamic_img_size=True a los argumentos en el momento de la creación del modelo para permitir cambiar el tamaño de la cuadrícula (interpolando las incrustaciones de posición absoluta y/o ROPE en cada pasada de inferencia). Agregar dynamic_img_pad=True para permitir tamaños de imagen que no sean divisibles por el tamaño del parche (rellenar la esquina inferior derecha hasta el tamaño del parche en cada pasada de inferencia). Habilitar cualquiera de los modos dinámicos romperá el trazado de FX a menos que el módulo PatchEmbed se agregue como hoja. El método existente de redimensionar la incrustación de posición pasando un img_size diferente (interpolando los pesos de la incrustación preentrenada una vez) en la creación sigue funcionando. El método existente de cambiar patch_size (redimensionando los pesos de patch_embed preentrenados una vez) en la creación sigue funcionando. Comando de validación de ejemplo 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- Agregue
dynamic_img_size=Truea los argumentos al momento de crear el modelo para permitir cambiar el tamaño de la cuadrícula (interpolando las incrustaciones de posición abs y/o ROPE en cada pasada de adelante). - Agregue
dynamic_img_pad=Truepara permitir tamaños de imagen que no sean divisibles por el tamaño del parche (se rellena la esquina inferior derecha hasta el tamaño del parche en cada pasada de adelante). - Activar cualquiera de los modos dinámicos romperá el trazado de FX a menos que el módulo PatchEmbed se añada como hoja.
- El método existente para redimensionar la incrustación de posición pasando un
img_sizediferente (interpolando los pesos de incrustación preentrenados una vez) en la creación sigue funcionando. - El método existente para cambiar
patch_size(redimensionar los pesos preentrenados de patch_embed una sola vez) en la creación sigue funcionando. - Ejemplo de comando de validación
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
- Agregue
25 de agosto de 2023
- Muchos modelos nuevos desde la última versión
- 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 (gracias a https://github.com/ChengpengChen)
- GhostNetV2 - https://arxiv.org/abs/2211.12905 (gracias a https://github.com/yehuitang)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (gracias a https://github.com/seefun)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (gracias a https://github.com/seefun)
- Añadir
--reparamel argumentobenchmark.py,onnx_export.py, yvalidate.pypara activar la reparametrización/fusión de capas en modelos que tengan cualquiera dereparameterize(),switch_to_deploy()ofuse()- Incluye FastViT, MobileOne, RepGhostNet, EfficientViT (MSRA), RepViT, RepVGG y LeViT
- Preparando la versión 0.9.6 “back to school”
11 de agosto de 2023
- Los modelos Swin, MaxViT, CoAtNet y BEiT admiten el redimensionamiento del tamaño de imagen/ventana en la creación, con adaptación de los pesos preentrenados
- Ejemplo de comando de validación para probar con redimensionado no cuadrado
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 de agosto de 2023
- Añade los pesos de GluonCV para HRNet w18_small y w18_small_v2. Convertidos por SeeFun
- Corregir la regresión en la nomenclatura de los modelos
selecsls* - El patch y el position embedding para ViT/EVA funcionan con pesos bfloat16/float16 al cargar (o con activaciones para el redimensionado en tiempo de ejecución)
- Preparación de la versión v0.9.5
27 de julio de 2023
- Se añadieron los pesos
seresnextaa201d_32x8d.sw_in12k_ft_in1k_384entrenados con timm (y el preentrenamiento.sw_in12k) con un top-1 del 87,3% en ImageNet-1k, el mejor modelo de la familia ResNet de ImageNet del que tengo conocimiento. - Modelo y pesos de RepViT (https://arxiv.org/abs/2307.09283) añadidos por wangao
- Pesos de características de I-JEPA ViT (sin clasificador) añadidos por SeeFun
- Pesos de características de SAM-ViT (segment anything) (sin clasificador) añadidos por SeeFun
- Añadir soporte para métodos alternativos de extracción de características e índices negativos a EfficientNet
- Agregar el optimizador NAdamW
- Correcciones varias
11 de mayo de 2023
timm0.9 publicado, transición desde las versiones de desarrollo 0.8.x
10 de mayo de 2023
- La descarga desde Hugging Face Hub es ahora el comportamiento predeterminado, 1132 modelos en https://huggingface.co/timm, 1163 pesos en
timm - Se añadieron los pesos del backbone de características vit de DINOv2 gracias a Leng Yue
- Se añadieron los pesos del backbone de características vit de FB MAE
- Se añadieron los pesos del backbone de características de OpenCLIP DataComp-XL L/14
- MetaFormer (poolformer-v2, caformer, convformer, poolformer actualizado (v1)) con pesos añadidos por Fredo Guan
- Función experimental
get_intermediate_layersen los modelos vit/deit para obtener estados ocultos (inspirada en la implementación de DINO). Esto está en desarrollo y puede cambiar significativamente… se agradece la retroalimentación. - La creación del modelo lanza un error si
pretrained=Truey no existen pesos (en lugar de continuar con una inicialización aleatoria) - Corregir regresión con pesos de TF de inception / nasnet con 1001 clases en los clasificadores originales
- Los optimizadores de bitsandbytes (https://github.com/TimDettmers/bitsandbytes) se añadieron a la fábrica, usa el prefijo
bnb, por ejemplobnbadam8bit - Limpieza y correcciones varias
- Pruebas finales antes de pasar a la versión 0.9 y sacar
timmdel estado de prelanzamiento
27 de abril de 2023
- El 97% de los modelos de
timmsubidos a HF Hub y casi todos actualizados para soportar configuraciones preentrenadas con múltiples pesos - Limpieza menor y refactorización de otro lote de modelos a medida que se añadía el soporte multi-weight. Más soporte para fused_attn (F.sdpa) y features_only, y correcciones de torchscript.
21 de abril de 2023
- Se añadió soporte para acumulación de gradientes al script de entrenamiento y se probó (
--grad-accum-steps), gracias a Taeksang Kim - Más pesos en HF Hub (cspnet, cait, volo, xcit, tresnet, hardcorenas, densenet, dpn, vovnet, xception_aligned)
- Se añadieron
--head-init-scaley--head-init-biasa train.py para escalar la cabeza del clasificador y establecer un sesgo fijo para el ajuste fino - Elimine todo el uso de InplaceABN (
inplace_abn), reemplazándolo en tresnet por BatchNorm estándar (modifiqué los pesos en consecuencia).
12 de abril de 2023
- Agrego el script de exportación a ONNX, el script de validación y los helpers que he tenido a mano durante mucho tiempo. Ajusto el relleno 'same' para mejorar la exportación con las versiones recientes de ONNX y PyTorch.
- Refactorizar los argumentos de dropout para vit y modelos similares a vit, separando drop_rate en
drop_rate(dropout del clasificador),proj_drop_rate(proyecciones de mlp / salida del bloque),pos_drop_rate(dropout de la incrustación de posición) yattn_drop_rate(dropout de atención). Además, añadir dropout de parche (FLIP) a los modelos vit y eva. - Soporte de F.scaled_dot_product_attention fusionado para más modelos vit, adición de la variable de entorno (TIMM_FUSED_ATTN) para controlarlo, e interfaz de configuración para habilitar/deshabilitar
- Añade los backbones de EVA-CLIP con los pesos de la torre de imagen, hasta el modelo ‘enormous’ de 4B parámetros, y el modo OpenAI ViT de 336x336 que faltaba.
5 de abril de 2023
- Todos los modelos ResNet subidos al Hugging Face Hub con soporte para múltiples pesos
- Todos los pesos entrenados con
timmanteriores se añadieron con etiquetas basadas en recetas para diferenciarlos - Todos los ResNet contraatacan A1/A2/A3 (semilla 0) y los pesos del ejemplo R50 B/C1/C2/D disponibles
- Añade los pesos de la receta de torchvision v2 a los originales de torchvision existentes
- Vea la tabla de comparación en https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison
- Todos los pesos entrenados con
- Nuevos fine-tunes de ImageNet-12k + ImageNet-1k disponibles para algunos modelos ResNet con antialiasing
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 de marzo de 2023
- Añade el primer ajuste fino de ConvNext-XXLarge CLIP -> IN-1k y los ajustes finos intermedios de IN-12k para los modelos 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 |
- Añadidos pesos preentrenados y afinados de EVA-02 MIM, subidos al hub de HF y actualizadas las tarjetas de modelo para todos los modelos EVA. ¡Primer modelo que supera el 90% de top-1 (99% top-5)! Consulta el código y los pesos originales en https://github.com/baaivision/EVA para más detalles sobre su trabajo combinando MIM y CLIP con numerosos ajustes de modelo, conjunto de datos y recetas de entrenamiento.
| 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-pesos y HF hub para modelos basados en DeiT y MLP-Mixer
22 de marzo de 2023
- Más pesos subidos al HF hub junto con el soporte para múltiples pesos, que incluye:
regnet.py,rexnet.py,byobnet.py,resnetv2.py,swin_transformer.py,swin_transformer_v2.py,swin_transformer_v2_cr.py - Los modelos Swin Transformer admiten la extracción de características (mapas de características NCHW para
swinv2_cr_*y NHWC para todos los demás) y salidas de incrustación espacial. - Se añadieron los modelos y pesos de FocalNet (de https://github.com/microsoft/FocalNet) con una refactorización importante, extracción de características y sin restricciones de resolución o tamaño fijo
- Los pesos de RegNet aumentaron con la publicación en el hub de HF, SWAG, SEER y los pesos de torchvision v2. SEER es bastante pobre en cuanto a rendimiento para el tamaño del modelo, pero posiblemente útil.
- Más pesos preentrenados en ImageNet-12k y afinados en 1k
timmde pesos: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 (comparado con SWAG PT + 1k FT, es lo mismo pero con mucha menor resolución, supera con creces a SEER FT)
- Se añadió la funcionalidad de deprecación y remapeo de nombres de modelos (un hito para sacar la versión 0.8.x de la prepublicación). Se están añadiendo los mapeos…
- Correcciones de errores menores y mejoras.
26 de febrero de 2023
- Añadidos los pesos preentrenados de la torre de imagen de ConvNeXt-XXLarge CLIP para fine-tuning y extracción de características (el fine-tuning está por definir) — ver ficha del modelo
- Actualizar el valor predeterminado de eps de LayerNorm en
convnext_xxlargea 1e-5 (para pesos de CLIP, estabilidad mejorada) - 0.8.15dev0
20 de febrero de 2023
- Añade los pesos de la torre de imágenes CLIP
convnext_large_mlp.clip_laion2b_ft_320yconvnext_large_mlp.clip_laion2b_ft_soup_320de 320x320 para características y ajuste fino - 0.8.13dev0 publicación en pypi para los últimos cambios con el traslado a la organización huggingface
16 de febrero de 2023
- Se añadió soporte para puntos de control de
safetensor - Añade ideas de ‘Scaling Vision Transformers to 22 B. Params’ (https://arxiv.org/abs/2302.05442) — qk norm, RmsNorm, parallel block
- Añadir soporte para F.scaleddot_product_attention (solo PyTorch 2.0) a `vit
,vit_relpos,coatnet/maxxvit` (para empezar) - Se añadió el optimizador Lion (con opción de multi-tensor) (https://arxiv.org/abs/2302.06675)
- el checkpointing de gradientes funciona con
features_only=True
7 de febrero de 2023
- Se han añadido nuevas cifras de referencia de inferencia en la carpeta results.
- Añadir pesos entrenados de convnext LAION CLIP y el conjunto inicial de fine-tunes en 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
- Añade modelos DaViT. Admite
features_only=True. Adaptado de https://github.com/dingmyu/davit por Fredo. - Usar un NormMlpClassifierHead común en MaxViT, ConvNeXt y DaViT
- Añade el modelo EfficientFormer-V2, actualiza EfficientFormer y refactoriza LeViT (arquitecturas estrechamente relacionadas). Pesos disponibles en HF hub.
- Nuevo diseño EfficientFormer-V2, refactorización importante respecto al original en (https://github.com/snap-research/EfficientFormer). Admite
features_only=True. - Actualizaciones menores a EfficientFormer.
- Refactorizar los modelos LeViT en etapas, añadir soporte para
features_only=Truea las nuevas variantes deconv, se requiere remapeo de pesos.
- Nuevo diseño EfficientFormer-V2, refactorización importante respecto al original en (https://github.com/snap-research/EfficientFormer). Admite
- Mover los metadatos de ImageNet (sinsets, índices) de
/resultsatimm/data/_info. - Añadir las clases ImageNetInfo / DatasetInfo para proporcionar etiquetas para varios diseños de clasificadores de ImageNet en
timm- Actualiza
inference.pypara usar, prueba:python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
- Actualiza
- Listo para la prepublicación 0.8.10 en pypi (pruebas finales).
20 de enero de 2023
Agrega dos fine-tunes de convnext 12k -> 1k a 384x384
convnext_tiny.in12k_ft_in1k_384- 85.1 @ 384convnext_small.in12k_ft_in1k_384- 86.2 @ 384
Subir todos los pesos de MaxxViT al HF hub y añadir nuevos ajustes finos de ImageNet-12k -> 1k para los modelos base de
rwMaxViT y CoAtNet 1/2
| model | top1 | top5 | muestras / seg | Parámetros (M) | GMAC | Actuar (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 de enero de 2023
- Actualización de la serie de preentrenamiento de ConvNeXt en ImageNet-12k con dos nuevos pesos ajustados (y pre FT
.in12ketiquetas)convnext_nano.in12k_ft_in1k- 82.3 @ 224, 82.9 @ 288 (publicado previamente)convnext_tiny.in12k_ft_in1k- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
6 de enero de 2023
- Por fin he añadido
--model-kwargsy--opt-kwargsa los scripts para pasar argumentos poco frecuentes directamente a las clases de modelo desde la línea de comandostrain.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
- Limpieza de algunos modelos populares para mejorar la compatibilidad con la passthrough de argumentos / fusión con las configuraciones de modelo, hay más por hacer.
5 de enero de 2023
- Se añadieron los modelos y pesos de ConvNeXt-V2 a los existentes en
convnext.py- Artículo: ConvNeXt V2: Co-diseño y escalado de ConvNets con autoencoderes enmascarados
- Implementación de referencia: https://github.com/facebookresearch/ConvNeXt-V2 (NOTA: los pesos son actualmente CC-BY-NC) @dataclass
23 de diciembre de 2022 🎄☃
- Añade modelos y pesos de FlexiViT desde https://github.com/google-research/big_vision (consulta el artículo en https://arxiv.org/abs/2212.08013)
- NOTA actualmente el redimensionamiento es estático en la creación del modelo, el muestreo dinámico del tamaño de parche en tiempo de ejecución / entrenamiento está en desarrollo
- Ahora muchos más modelos actualizados a multi-peso y descargables a través de HF hub (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- Más etiquetas de modelos preentrenados y ajustes, algunos nombres de modelos cambiados (trabajando en traducciones de obsolescencia, considera la rama principal DEV en este momento, usa 0.6.x para uso estable)
- Aparecen más modelos preentrenados de ImageNet-12k (subconjunto de 22k):
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 de diciembre de 2022
- Añadir ‘EVA l’ a
vision_transformer.py, preentrenamiento MIM de ViT-L/14 estilo MAE con objetivos EVA-CLIP, FT en ImageNet-1k (con ImageNet-22k intermedio para algunos)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | enlace |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | enlace |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | enlace |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | enlace |
6 de diciembre de 2022
- Añadir los pesos del modelo ViT-g/14 de estilo BEiT, 'EVA g', con preentrenamiento MIM y preentrenamiento CLIP a
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 | enlace |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | enlace |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | enlace |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | enlace |
5 de diciembre de 2022
- Versión preliminar (
0.8.0dev0) del soporte para múltiples pesos (model_arch.pretrained_tag). Instala conpip install --pre timm- vision_transformer, maxvit, convnext son las tres primeras implementaciones de modelos con soporte
- Los nombres de los modelos están cambiando con esto (las funciones anteriores, como _21k, se fusionarán), todavía estamos resolviendo el manejo de la obsolescencia
- Es probable que haya errores, pero necesito retroalimentación, así que por favor pruébenlo.
- si se necesita estabilidad, utilice las versiones 0.6.x de pypi o clone desde la rama 0.6.x
- Se ha añadido soporte para PyTorch 2.0 compile en train/validate/inference/benchmark, use el argumento
--torchcompile - El script de inferencia permite un mayor control sobre la salida, seleccionar k para el índice y la probabilidad de la clase superior, salida en json, csv o parquet
- Añade un conjunto completo de pesos de la torre de imágenes de CLIP afinados, tanto de los modelos LAION-2B como de los modelos originales de OpenAI CLIP
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | enlace |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | enlace |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | enlace |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | enlace |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | enlace |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | enlace |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | enlace |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | enlace |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | enlace |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | enlace |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | enlace |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | enlace |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | enlace |
- Port de los pesos de MaxViT de TensorFlow desde la implementación oficial en https://github.com/google-research/maxvit
- Hubo caídas mayores de lo esperado para los pesos de ajuste fino in21k escalados a 384/512, posiblemente por falta de detalle, pero el ajuste fino de 21k sí pareció sensible a pequeños cambios en el preprocesamiento
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | enlace |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | enlace |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | enlace |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | enlace |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | enlace |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | enlace |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | enlace |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | enlace |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | enlace |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | enlace |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | enlace |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | enlace |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | enlace |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | enlace |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | enlace |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | enlace |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | enlace |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | enlace |
15 de octubre de 2022
- Mejoras en los scripts de entrenamiento y validación
- Soporte para dispositivos no GPU (es decir, CPU)
- Compatibilidad con SLURM para el script de entrenamiento
- Soporte para datasets de HF (vía ReaderHfds)
- Mejoras en la carga de datos de TFDS/WDS (relleno y envoltura de muestras para uso distribuido corregidos en relación con la estimación del número de muestras)
- soporte para in_chans !=3 en scripts / loader
- Optimizador Adan
- Se puede habilitar la programación de LR por paso mediante args
- Los 'parsers' del Dataset se renombraron a 'readers', más descriptivo de su propósito
- Los argumentos de AMP cambiaron, APEX a través de
--amp-impl apex, bfloat16 admitido a través de--amp-dtype bfloat16 - La rama principal se cambió a la versión 0.7.x, y la rama 0.6x se bifurcó para el lanzamiento estable de weight only adds
- renombrar la rama master -> main
10 de octubre de 2022
- Más pesos en la serie
maxxvit, incluido el primer bloque basado en ConvNeXtcoatnextymaxxvitexperimentos:coatnext_nano_rw_224- 82.0 @ 224 (G) — (usa el bloque conv de ConvNeXt, sin BatchNorm)maxxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.7 @ 320 (G) (usa bloque conv de ConvNeXt, sin 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) — podría entrenarse mejor, los hparams necesitan ajuste (usa bloque ConvNeXt, sin BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTA: los pesos oficiales de MaxVit (in1k) se han publicado en https://github.com/google-research/maxvit — se necesita un trabajo adicional para portar y adaptar, ya que mi implementación se creó de forma independiente a la suya y tiene algunas pequeñas diferencias + todo el tema del relleno "same" de TF.
23 de septiembre de 2022
- Las torres de imagen CLIP de LAION-2B se admiten como columnas verticales preentrenadas para el ajuste fino o la extracción de características (sin clasificador)
- 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 de septiembre de 2022
- Ahora existe la página de inicio de la documentación de
timmde Hugging Face, busca más contenido aquí en el futuro - Añade los pesos de BEiT-v2 para los modelos base y large de 224x224 desde https://github.com/microsoft/unilm/tree/master/beit2
- Añade más pesos en la
maxxvitserie, incluido unpico(7.5M de parámetros, 1,9 GMACs), dostinyvariantes: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 de agosto de 2022
- El tamaño de la ventana de MaxVit se escala con img_size de forma predeterminada. Añade un nuevo peso RelPosMlp MaxViT que aproveche esto:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 de agosto de 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) y MaxVit (https://arxiv.org/abs/2204.01697)
timmmodelos originales de timm- ambos se encuentran en la definición del modelo de
maxxvit.pyy contienen numerosos experimentos fuera del alcance de los artículos originales - se puede encontrar una versión de Tensorflow incompleta de los autores de MaxVit en https://github.com/google-research/maxvit
- ambos se encuentran en la definición del modelo de
- Pesos preentrenados iniciales de CoAtNet y MaxVit de timm (trabajando en más):
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) — NOTA: los coatnets con ‘0’ de timm tienen 2 bloques de 3.ª etapa adicionalescoatnet_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 entrenado con el código de entrenamiento de la rama
bits_and_tpu, (G) = GPU entrenado
- GCVit (pesos adaptados de https://github.com/NVlabs/GCVit, código 100% reescrito en
timmpor motivos de licencia) - MViT-V2 (vit multi-escala, adaptado de https://github.com/facebookresearch/mvit)
- EfficientFormer (adaptado de https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (adaptado de https://github.com/whai362/PVT)
- Soporte de ‘Fast Norm’ para LayerNorm y GroupNorm que evita el upcast a float32 con AMP (usa APEX LN si está disponible para un mayor rendimiento)
15 de agosto de 2022
- Se añadieron los pesos de ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 de agosto de 2022
- Más definiciones de modelos ConvNeXt más pequeños personalizados con pesos
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
- Actualizado EdgeNeXt para mejorar la exportación a ONNX, añadir una nueva variante base y pesos del original (https://github.com/mmaaz60/EdgeNeXt)
28 de julio de 2022
- Añadidos los pesos del modelo DeiT-III Medium (width=512, depth=12, num_heads=8) recién creados. ¡Gracias a Hugo Touvron!
27 de julio de 2022
- ¡Todos los archivos csv de resultados de validación y de las pruebas de rendimiento en tiempo de ejecución están al día por fin!
- Se han añadido algunos pesos y definiciones de modelos má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
- Pesos de
cs3*entrenados en su totalidad en TPU con la ramabits_and_tpu. ¡Gracias al programa TRC! - Añadir soporte para output_stride=8 y 16 a ConvNeXt (dilatación)
- Corregido el problema de que los modelos deit3 no podían redimensionar pos_emb
- Versión 0.6.7 PyPi release (con las correcciones de errores anteriores y nuevos pesos desde la 0.6.5)
8 de julio de 2022
Más modelos, más correcciones
- Modelos de investigación oficiales (con pesos) añadidos:
- EdgeNeXt de (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 de (https://github.com/apple/ml-cvnets)
- DeiT III (La venganza de ViT) de (https://github.com/facebookresearch/deit)
- Mis propios modelos:
- Se añadieron defs de
ResNetpequeños por solicitud, con 1 repetición de bloque para ambos, básico y bottleneck (resnet10 y resnet14) CspNetrefactorizado con configuración de dataclass y opción simplificada CrossStage3 (cs3). Estas definiciones se acercan más a las definiciones de backbone de YOLO-v5+.- Más ajustes en la posición relativa de vit. Se entrenaron dos modelos
srelpos(posición relativa compartida) y uno mediano con token de clase. - Añade un modo de submuestreo alternativo a EdgeNeXt y entrena un modelo
small. Es mejor que el original small, pero no alcanza los pesos USI entrenados de su nueva versión.
- Se añadieron defs de
- Resultados de mis propios pesos de modelo (todo el entrenamiento en 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
- Los pesos de
cs3,darknetyvit_*relposse entrenaron en TPU gracias al programa TRC. El resto se entrenó en GPUs que se sobrecalentaban. - Correcciones de soporte para Hugging Face Hub verificadas, cuaderno de demostración por definir
- Los pesos / configuraciones preentrenados se pueden cargar externamente (por ejemplo, desde el disco local) con soporte para la adaptación de la cabeza.
- Añadir soporte para cambiar las extensiones de imagen que escanean los conjuntos de datos/lectores de
timm. Ver (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - Implementación predeterminada de LayerNorm para usar en ConvNeXt
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)a través deLayerNorm2den todos los casos. Un poco más lento que la implementación personalizada anterior en algunos hardware (por ejemplo, Ampere con CL), pero en general hay menos regresiones en un rango más amplio de hardware y versiones de PyTorch. La implementación anterior existe como LayerNormExp2d en models/layers/norm.py- un poco más lento que la implementación personalizada anterior en algunos hardware (por ejemplo, Ampere con CL), pero en general hay menos regresiones en un rango más amplio de hardware y versiones de PyTorch.
- la implementación anterior existe como
LayerNormExp2denmodels/layers/norm.py
- Numerosas correcciones de errores
- Actualmente probando para la inminente versión 0.6.x de PyPi
- El preentrenamiento de modelos más grandes de LeViT sigue siendo un trabajo en curso; no se entrenan bien / fácilmente sin destilación. ¿Es hora de añadir soporte para destilación (por fin)?
- Entrenamiento de pesos de ImageNet-22k + ajuste fino en curso, el trabajo para soportar múltiples pesos (lento) avanza poco a poco (hay MUCHOS pesos, suspiro) …
13 de mayo de 2022
- Se añadieron los modelos y pesos oficiales de Swin-V2 desde (https://github.com/microsoft/Swin-Transformer). Se limpiaron para admitir torchscript.
- Algunas refactorizaciones para la implementación existente de Swin-V2-CR de
timm, probablemente se hará un poco más para acercar ciertas partes a la versión oficial y decidir si fusionar algunos aspectos. - Más experimentos de posición relativa / normalización residual posterior de Vision Transformer (todos entrenados en TPU gracias al programa TRC)
vit_relpos_small_patch16_224- 81.5 @ 224, 82.5 @ 320 — pos rel, layer scale, sin class token, avg poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, sin class token, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — pos rel, layer scale, sin class token, avg poolvit_relpos_base_patch16_gapcls_224- 82.8 @ 224, 83.9 @ 320 — pos rel, escala de capa, token de clase, pool promedio (por error)
- Revivir la variante “medium” del modelo ViT de 512 dimensiones y 8 cabezas (después de haberla utilizado en un modelo “small” anterior a DeiT para la primera implementación de ViT en 2020)
- Añadir soporte para posiciones relativas de ViT para alternar entre la implementación existente y algunas adiciones de la implementación oficial de Swin-V2 para pruebas futuras
- Implementación de Sequencer2D (https://arxiv.org/abs/2205.01972), añadida mediante PR del autor (https://github.com/okojoalg)
2 de mayo de 2022
- Experimentos de Vision Transformer que añaden posición relativa (coordenadas logarítmicas de Swin-V2) (
vision_transformer_relpos.py) y ramas de Residual Post-Norm (de Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256, 80.6 @ 320 — pos rel + ancho extendido + res-post-norm, sin token de clase, pool promediovit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — pos rel, layer scale, sin class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — pos rel + res-post-norm, sin token de clase, pool promedio
- Refactor del Vision Transformer para eliminar la capa de representación que solo se usaba en el vit inicial y rara vez se ha utilizado desde entonces con los nuevos preentrenamientos (por ejemplo,
How to Train Your ViT) - Los modelos
vit_*admiten la eliminación del token de clase, el uso de la media global de la piscina y el uso de fc_norm (al estilo de beit, mae).
22 de abril de 2022
- Los modelos de
timmahora son oficialmente compatibles con fast.ai! Justo a tiempo para el nuevo curso Practical Deep Learning. El enlace de documentación detimmdocsse actualizó a timm.fast.ai. - Se añadieron dos pesos de modelo más entrenados en TPU en la serie. Algunos preentrenamientos In22k siguen en curso.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(antialiasado con AvgPool2d) - 83.85 @ 224, 84.57 @ 288
23 de marzo de 2022
- Añade la opción
ParallelBlockyLayerScalea los modelos vit base para admitir configuraciones de modelos en Three things everyone should know about ViT - Pesos de
convnext_tiny_hnf(normalización de la cabeza primero) entrenados con la receta A2 (o similar), 82,2 % top-1, podría mejorar con más épocas.
21 de marzo de 2022
- Fusiona
norm_norm_norm. IMPORTANTE esta actualización para una próxima versión 0.6.x probablemente desestabilice la rama principal durante un tiempo. Se puede usar la rama0.5.xo una versión anterior de 0.5.x si se requiere estabilidad. - Actualización importante de los pesos (entrenados en TPU) tal como se describe en esta publicación
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 (pre-act de timm)regnetv_064- 83.1 @ 224, 83.71 @ 288 (pre-act de timm)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256, 84.5 @ 320 (con fc extra en la cabecera)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 (pre-act de timm)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
- Soporte para el hub de HuggingFace corregido, con la base inicial para permitir ‘fuentes de configuración’ alternativas para las definiciones y pesos de modelos preentrenados (soporte genérico para archivos locales / URL remotas próximamente)
- Se añadió la implementación de SwinTransformer-V2. Enviada por Christoph Reich. Los experimentos de entrenamiento y los cambios en el modelo que estoy realizando están en curso, por lo que es posible que haya incompatibilidades.
- Se añadieron los modelos / pesos de Swin-S3 (AutoFormerV2) desde https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- Modelos MobileViT con pesos adaptados de https://github.com/apple/ml-cvnets
- Modelos PoolFormer con pesos adaptados de https://github.com/sail-sg/poolformer
- Modelos VOLO con pesos adaptados de https://github.com/sail-sg/volo
- Trabajo significativo experimentando con capas de normalización distintas de BatchNorm, como EvoNorm, FilterResponseNorm, GroupNorm, etc.
- Mejorar el soporte para capas de norma + activación alternativas (‘NormAct’) añadidas a varios modelos, en particular EfficientNet/MobileNetV3, RegNet y Xception alineado
- Soporte para convoluciones agrupadas añadido a la familia EfficientNet
- Añade la API de ‘group matching’ a todos los modelos para permitir agrupar los parámetros del modelo para la aplicación de decaimiento de LR ‘layer-wise’, se añade lr scale al programador de LR
- Soporte para gradient checkpointing añadido a muchos modelos
forward_head(x, pre_logits=False)función añadida a todos los modelos para permitir llamadas separadas deforward_features+forward_head- Todos los modelos de vision transformer y vision MLP se actualizan para devolver características no agrupadas / sin selección de tokens desde
forward_features, para mantener la consistencia con los modelos CNN; la selección de tokens o el agrupamiento ahora se aplican enforward_head
2 de febrero de 2022
- Chris Hughes publicó ayer en su blog un recorrido exhaustivo por
timm. Vale mucho la pena leerlo. Getting Started with PyTorch Image Models (timm): A Practitioner’s Guide - Actualmente estoy preparando la fusión de la rama
norm_norm_normde vuelta a master (ver 0.6.x) en aproximadamente una semana.- Los cambios son más extensos de lo habitual y pueden desestabilizar y romper el uso de algunas APIs de modelos (buscando compatibilidad hacia atrás completa). Así que, ten cuidado con las instalaciones de
pip install git+https://github.com/rwightman/pytorch-image-models - Las versiones
0.5.xy la rama0.5.xpermanecerán estables con uno o dos cherry picks hasta que la situación se estabilice. Si buscas estabilidad, recomendamos usar la instalación de pypi durante un tiempo.
- Los cambios son más extensos de lo habitual y pueden desestabilizar y romper el uso de algunas APIs de modelos (buscando compatibilidad hacia atrás completa). Así que, ten cuidado con las instalaciones de
14 de enero de 2022
- Versión 0.5.4 con la publicación que se enviará a pypi. Ha pasado un tiempo desde la última actualización en pypi y los cambios más arriesgados se integrarán pronto en la rama principal…
- Añade modelos ConvNeXT con pesos de la implementación oficial (https://github.com/facebookresearch/ConvNeXt), algunos ajustes de rendimiento y compatible con las funciones de timm
- He probado entrenar algunos modelos pequeños (aprox. 1,8-3M de parámetros) / optimizados para móviles, algunos van bien por ahora, hay más en camino…
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
- Modelos TinyNet añadidos por rsomani95
- LCNet añadido mediante la arquitectura MobileNetV3
5 de enero de 2023
- Se añadieron los modelos y pesos de ConvNeXt-V2 a los existentes en
convnext.py- Artículo: ConvNeXt V2: Co-diseño y escalado de ConvNets con autoencoderes enmascarados
- Implementación de referencia: https://github.com/facebookresearch/ConvNeXt-V2 (NOTA: los pesos están actualmente bajo CC-BY-NC)
23 de diciembre de 2022 🎄☃
- Añade modelos y pesos de FlexiViT desde https://github.com/google-research/big_vision (consulta el artículo en https://arxiv.org/abs/2212.08013)
- NOTA actualmente el redimensionamiento es estático en la creación del modelo, el muestreo dinámico del tamaño de parche en tiempo de ejecución / entrenamiento está en desarrollo
- Ahora muchos más modelos actualizados a multi-peso y descargables a través de HF hub (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- Más etiquetas de modelos preentrenados y ajustes, algunos nombres de modelos cambiados (trabajando en traducciones de obsolescencia, considera la rama principal DEV en este momento, usa 0.6.x para uso estable)
- Aparecen más modelos preentrenados de ImageNet-12k (subconjunto de 22k):
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 de diciembre de 2022
- Añadir ‘EVA l’ a
vision_transformer.py, preentrenamiento MIM de ViT-L/14 estilo MAE con objetivos EVA-CLIP, FT en ImageNet-1k (con ImageNet-22k intermedio para algunos)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | enlace |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | enlace |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | enlace |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | enlace |
6 de diciembre de 2022
- Añadir los pesos del modelo ViT-g/14 de estilo BEiT, 'EVA g', con preentrenamiento MIM y preentrenamiento CLIP a
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 | enlace |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | enlace |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | enlace |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | enlace |
5 de diciembre de 2022
- Versión preliminar (
0.8.0dev0) del soporte para múltiples pesos (model_arch.pretrained_tag). Instala conpip install --pre timm- vision_transformer, maxvit, convnext son las tres primeras implementaciones de modelos con soporte
- Los nombres de los modelos están cambiando con esto (las funciones anteriores, como _21k, se fusionarán), todavía estamos resolviendo el manejo de la obsolescencia
- Es probable que haya errores, pero necesito retroalimentación, así que por favor pruébenlo.
- si se necesita estabilidad, utilice las versiones 0.6.x de pypi o clone desde la rama 0.6.x
- Se ha añadido soporte para PyTorch 2.0 compile en train/validate/inference/benchmark, use el argumento
--torchcompile - El script de inferencia permite un mayor control sobre la salida, seleccionar k para el índice y la probabilidad de la clase superior, salida en json, csv o parquet
- Añade un conjunto completo de pesos de la torre de imágenes de CLIP afinados, tanto de los modelos LAION-2B como de los modelos originales de OpenAI CLIP
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | enlace |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | enlace |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | enlace |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | enlace |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | enlace |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | enlace |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | enlace |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | enlace |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | enlace |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | enlace |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | enlace |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | enlace |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | enlace |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | enlace |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | enlace |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | enlace |
- Port de los pesos de MaxViT de TensorFlow desde la implementación oficial en https://github.com/google-research/maxvit
- Hubo caídas mayores de lo esperado para los pesos de ajuste fino in21k escalados a 384/512, posiblemente por falta de detalle, pero el ajuste fino de 21k sí pareció sensible a pequeños cambios en el preprocesamiento
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | enlace |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | enlace |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | enlace |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | enlace |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | enlace |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | enlace |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | enlace |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | enlace |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | enlace |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | enlace |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | enlace |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | enlace |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | enlace |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | enlace |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | enlace |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | enlace |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | enlace |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | enlace |
15 de octubre de 2022
- Mejoras en los scripts de entrenamiento y validación
- Soporte para dispositivos no GPU (es decir, CPU)
- Compatibilidad con SLURM para el script de entrenamiento
- Soporte para datasets de HF (vía ReaderHfds)
- Mejoras en la carga de datos de TFDS/WDS (relleno y envoltura de muestras para uso distribuido corregidos en relación con la estimación del número de muestras)
- soporte para in_chans !=3 en scripts / loader
- Optimizador Adan
- Se puede habilitar la programación de LR por paso mediante args
- Los 'parsers' del Dataset se renombraron a 'readers', más descriptivo de su propósito
- Los argumentos de AMP cambiaron, APEX a través de
--amp-impl apex, bfloat16 admitido a través de--amp-dtype bfloat16 - La rama principal se cambió a la versión 0.7.x, y la rama 0.6x se bifurcó para el lanzamiento estable de weight only adds
- renombrar la rama master -> main
10 de octubre de 2022
- Más pesos en la serie
maxxvit, incluido el primer bloque basado en ConvNeXtcoatnextymaxxvitexperimentos:coatnext_nano_rw_224- 82.0 @ 224 (G) — (usa el bloque conv de ConvNeXt, sin BatchNorm)maxxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.7 @ 320 (G) (usa bloque conv de ConvNeXt, sin 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) — podría entrenarse mejor, los hparams necesitan ajuste (usa bloque ConvNeXt, sin BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTA: los pesos oficiales de MaxVit (in1k) se han publicado en https://github.com/google-research/maxvit — se necesita un trabajo adicional para portar y adaptar, ya que mi implementación se creó de forma independiente a la suya y tiene algunas pequeñas diferencias + todo el tema del relleno "same" de TF.
23 de septiembre de 2022
- Las torres de imagen CLIP de LAION-2B se admiten como columnas verticales preentrenadas para el ajuste fino o la extracción de características (sin clasificador)
- 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 de septiembre de 2022
- Ahora existe la página de inicio de la documentación de
timmde Hugging Face, busca más contenido aquí en el futuro - Añade los pesos de BEiT-v2 para los modelos base y large de 224x224 desde https://github.com/microsoft/unilm/tree/master/beit2
- Añade más pesos en la
maxxvitserie, incluido unpico(7.5M de parámetros, 1,9 GMACs), dostinyvariantes: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 de agosto de 2022
- El tamaño de la ventana de MaxVit se escala con img_size de forma predeterminada. Añade un nuevo peso RelPosMlp MaxViT que aproveche esto:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 de agosto de 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) y MaxVit (https://arxiv.org/abs/2204.01697)
timmmodelos originales de timm- ambos se encuentran en la definición del modelo de
maxxvit.pyy contienen numerosos experimentos fuera del alcance de los artículos originales - se puede encontrar una versión de Tensorflow incompleta de los autores de MaxVit en https://github.com/google-research/maxvit
- ambos se encuentran en la definición del modelo de
- Pesos preentrenados iniciales de CoAtNet y MaxVit de timm (trabajando en más):
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) — NOTA: los coatnets con ‘0’ de timm tienen 2 bloques de 3.ª etapa adicionalescoatnet_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 entrenado con el código de entrenamiento de la rama
bits_and_tpu, (G) = GPU entrenado
- GCVit (pesos adaptados de https://github.com/NVlabs/GCVit, código 100% reescrito en
timmpor motivos de licencia) - MViT-V2 (vit multi-escala, adaptado de https://github.com/facebookresearch/mvit)
- EfficientFormer (adaptado de https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (adaptado de https://github.com/whai362/PVT)
- Soporte de ‘Fast Norm’ para LayerNorm y GroupNorm que evita el upcast a float32 con AMP (usa APEX LN si está disponible para un mayor rendimiento)
15 de agosto de 2022
- Se añadieron los pesos de ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 de agosto de 2022
- Más definiciones de modelos ConvNeXt más pequeños personalizados con pesos
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
- Actualizado EdgeNeXt para mejorar la exportación a ONNX, añadir una nueva variante base y pesos del original (https://github.com/mmaaz60/EdgeNeXt)
28 de julio de 2022
- Añadidos los pesos del modelo DeiT-III Medium (width=512, depth=12, num_heads=8) recién creados. ¡Gracias a Hugo Touvron!
27 de julio de 2022
- ¡Todos los archivos csv de resultados de validación y de las pruebas de rendimiento en tiempo de ejecución están actualizados!
- Se han añadido algunos pesos y definiciones de modelos má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
- Pesos de
cs3*entrenados en su totalidad en TPU con la ramabits_and_tpu. ¡Gracias al programa TRC! - Añadir soporte para output_stride=8 y 16 a ConvNeXt (dilatación)
- Corregido el problema de que los modelos deit3 no podían redimensionar pos_emb
- Versión 0.6.7 PyPi release (con las correcciones de errores anteriores y nuevos pesos desde la 0.6.5)
8 de julio de 2022
Más modelos, más correcciones
- Modelos de investigación oficiales (con pesos) añadidos:
- EdgeNeXt de (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 de (https://github.com/apple/ml-cvnets)
- DeiT III (La venganza de ViT) de (https://github.com/facebookresearch/deit)
- Mis propios modelos:
- Se añadieron defs de
ResNetpequeños por solicitud, con 1 repetición de bloque para ambos, básico y bottleneck (resnet10 y resnet14) CspNetrefactorizado con configuración de dataclass y opción simplificada CrossStage3 (cs3). Estas definiciones se acercan más a las definiciones de backbone de YOLO-v5+.- Más ajustes en la posición relativa de vit. Se entrenaron dos modelos
srelpos(posición relativa compartida) y uno mediano con token de clase. - Añade un modo de submuestreo alternativo a EdgeNeXt y entrena un modelo
small. Es mejor que el original small, pero no alcanza los pesos USI entrenados de su nueva versión.
- Se añadieron defs de
- Resultados de mis propios pesos de modelo (todo el entrenamiento en 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
- Los pesos de
cs3,darknetyvit_*relposse entrenaron en TPU gracias al programa TRC. El resto se entrenó en GPUs que se sobrecalentaban. - Correcciones de soporte para Hugging Face Hub verificadas, cuaderno de demostración por definir
- Los pesos / configuraciones preentrenados se pueden cargar externamente (por ejemplo, desde el disco local) con soporte para la adaptación de la cabeza.
- Añade soporte para cambiar las extensiones de imagen que escanean los conjuntos de datos/analizadores de
timm. Ver (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - Implementación predeterminada de LayerNorm para usar en ConvNeXt
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)a través deLayerNorm2den todos los casos. Un poco más lento que la implementación personalizada anterior en algunos hardware (por ejemplo, Ampere con CL), pero en general hay menos regresiones en un rango más amplio de hardware y versiones de PyTorch. La implementación anterior existe como LayerNormExp2d en models/layers/norm.py- un poco más lento que la implementación personalizada anterior en algunos hardware (por ejemplo, Ampere con CL), pero en general hay menos regresiones en un rango más amplio de hardware y versiones de PyTorch.
- la implementación anterior existe como
LayerNormExp2denmodels/layers/norm.py
- Numerosas correcciones de errores
- Actualmente probando para la inminente versión 0.6.x de PyPi
- El preentrenamiento de modelos más grandes de LeViT sigue siendo un trabajo en curso; no se entrenan bien / fácilmente sin destilación. ¿Es hora de añadir soporte para destilación (por fin)?
- Entrenamiento de pesos de ImageNet-22k + ajuste fino en curso, el trabajo para soportar múltiples pesos (lento) avanza poco a poco (hay MUCHOS pesos, suspiro) …
13 de mayo de 2022
- Se añadieron los modelos y pesos oficiales de Swin-V2 desde (https://github.com/microsoft/Swin-Transformer). Se limpiaron para admitir torchscript.
- Algunas refactorizaciones para la implementación existente de Swin-V2-CR de
timm, probablemente se hará un poco más para acercar ciertas partes a la versión oficial y decidir si fusionar algunos aspectos. - Más experimentos de posición relativa / normalización residual posterior de Vision Transformer (todos entrenados en TPU gracias al programa TRC)
vit_relpos_small_patch16_224- 81.5 @ 224, 82.5 @ 320 — pos rel, layer scale, sin class token, avg poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, sin class token, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — pos rel, layer scale, sin class token, avg poolvit_relpos_base_patch16_gapcls_224- 82.8 @ 224, 83.9 @ 320 — pos rel, escala de capa, token de clase, pool promedio (por error)
- Revivir la variante “medium” del modelo ViT de 512 dimensiones y 8 cabezas (después de haberla utilizado en un modelo “small” anterior a DeiT para la primera implementación de ViT en 2020)
- Añadir soporte para posiciones relativas de ViT para alternar entre la implementación existente y algunas adiciones de la implementación oficial de Swin-V2 para pruebas futuras
- Implementación de Sequencer2D (https://arxiv.org/abs/2205.01972), añadida mediante PR del autor (https://github.com/okojoalg)
2 de mayo de 2022
- Experimentos de Vision Transformer que añaden posición relativa (coordenadas logarítmicas de Swin-V2) (
vision_transformer_relpos.py) y ramas de Residual Post-Norm (de Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256, 80.6 @ 320 — pos rel + ancho extendido + res-post-norm, sin token de clase, pool promediovit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — pos rel, layer scale, sin class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — pos rel + res-post-norm, sin token de clase, pool promedio
- Refactor del Vision Transformer para eliminar la capa de representación que solo se usaba en el vit inicial y rara vez se ha utilizado desde entonces con los nuevos preentrenamientos (por ejemplo,
How to Train Your ViT) - Los modelos
vit_*admiten la eliminación del token de clase, el uso de la media global de la piscina y el uso de fc_norm (al estilo de beit, mae).
22 de abril de 2022
- Los modelos de
timmahora son oficialmente compatibles con fast.ai! Justo a tiempo para el nuevo curso Practical Deep Learning. El enlace de documentación detimmdocsse actualizó a timm.fast.ai. - Se añadieron dos pesos de modelo más entrenados en TPU en la serie. Algunos preentrenamientos In22k siguen en curso.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(antialiasado con AvgPool2d) - 83.85 @ 224, 84.57 @ 288
23 de marzo de 2022
- Añade la opción
ParallelBlockyLayerScalea los modelos vit base para admitir configuraciones de modelos en Three things everyone should know about ViT - Pesos de
convnext_tiny_hnf(normalización de la cabeza primero) entrenados con la receta A2 (o similar), 82,2 % top-1, podría mejorar con más épocas.
21 de marzo de 2022
- Fusiona
norm_norm_norm. IMPORTANTE esta actualización para una próxima versión 0.6.x probablemente desestabilice la rama principal durante un tiempo. Se puede usar la rama0.5.xo una versión anterior de 0.5.x si se requiere estabilidad. - Actualización importante de los pesos (entrenados en TPU) tal como se describe en esta publicación
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 (pre-act de timm)regnetv_064- 83.1 @ 224, 83.71 @ 288 (pre-act de timm)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256, 84.5 @ 320 (con fc extra en la cabecera)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 (pre-act de timm)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
- Soporte para el hub de HuggingFace corregido, con la base inicial para permitir ‘fuentes de configuración’ alternativas para las definiciones y pesos de modelos preentrenados (soporte genérico para archivos locales / URL remotas próximamente)
- Se añadió la implementación de SwinTransformer-V2. Enviada por Christoph Reich. Los experimentos de entrenamiento y los cambios en el modelo que estoy realizando están en curso, por lo que es posible que haya incompatibilidades.
- Se añadieron los modelos / pesos de Swin-S3 (AutoFormerV2) desde https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- Modelos MobileViT con pesos adaptados de https://github.com/apple/ml-cvnets
- Modelos PoolFormer con pesos adaptados de https://github.com/sail-sg/poolformer
- Modelos VOLO con pesos adaptados de https://github.com/sail-sg/volo
- Trabajo significativo experimentando con capas de normalización distintas de BatchNorm, como EvoNorm, FilterResponseNorm, GroupNorm, etc.
- Mejorar el soporte para capas de norma + activación alternativas (‘NormAct’) añadidas a varios modelos, en particular EfficientNet/MobileNetV3, RegNet y Xception alineado
- Soporte para convoluciones agrupadas añadido a la familia EfficientNet
- Añade la API de ‘group matching’ a todos los modelos para permitir agrupar los parámetros del modelo para la aplicación de decaimiento de LR ‘layer-wise’, se añade lr scale al programador de LR
- Soporte para gradient checkpointing añadido a muchos modelos
forward_head(x, pre_logits=False)función añadida a todos los modelos para permitir llamadas separadas deforward_features+forward_head- Todos los modelos de vision transformer y vision MLP se actualizan para devolver características no agrupadas / sin selección de tokens desde
forward_features, para mantener la consistencia con los modelos CNN; la selección de tokens o el agrupamiento ahora se aplican enforward_head
2 de febrero de 2022
- Chris Hughes publicó ayer en su blog un recorrido exhaustivo por
timm. Vale mucho la pena leerlo. Getting Started with PyTorch Image Models (timm): A Practitioner’s Guide - Actualmente estoy preparando la fusión de la rama
norm_norm_normde vuelta a master (ver 0.6.x) en aproximadamente una semana.- Los cambios son más extensos de lo habitual y pueden desestabilizar y romper el uso de algunas APIs de modelos (buscando compatibilidad hacia atrás completa). Así que, ten cuidado con las instalaciones de
pip install git+https://github.com/rwightman/pytorch-image-models - Las versiones
0.5.xy la rama0.5.xpermanecerán estables con uno o dos cherry picks hasta que la situación se estabilice. Si buscas estabilidad, recomendamos usar la instalación de pypi durante un tiempo.
- Los cambios son más extensos de lo habitual y pueden desestabilizar y romper el uso de algunas APIs de modelos (buscando compatibilidad hacia atrás completa). Así que, ten cuidado con las instalaciones de
14 de enero de 2022
- Versión 0.5.4 con la publicación que se enviará a pypi. Ha pasado un tiempo desde la última actualización en pypi y los cambios más arriesgados se integrarán pronto en la rama principal…
- Añade modelos ConvNeXT con pesos de la implementación oficial (https://github.com/facebookresearch/ConvNeXt), algunos ajustes de rendimiento y compatible con las funciones de timm
- He probado entrenar algunos modelos pequeños (aprox. 1,8-3M de parámetros) / optimizados para móviles, algunos van bien por ahora, hay más en camino…
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
- Modelos TinyNet añadidos por rsomani95
- LCNet añadido mediante la arquitectura MobileNetV3