timm documentation

Modelos

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.0.30).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Modelos

Esta página contiene la documentación de referencia de la API para crear y descubrir modelos de timm, sus configuraciones preentrenadas y los helpers de checkpoint / Hub, así como una descripción general de la interfaz compartida por los modelos de timm. Las arquitecturas individuales se tratan en los resúmenes de modelos y en las páginas de cada modelo.

Uso

Los modelos se crean por nombre con create_model. El nombre selecciona una arquitectura registrada en timm, opcionalmente con una etiqueta de preentrenamiento después de un . (resnet50.a1_in1k), o un modelo en el Hugging Face Hub o en una carpeta local mediante un prefijo de origen. Los argumentos de palabra clave que create_model no utiliza en sí mismo se pasan a través de la función de entrada del modelo al constructor de la clase del modelo, por lo que se puede establecer cualquier argumento específico del modelo.

import torch
import timm

# Random init (pretrained=False is the default). The tag selects the pretrained cfg, and the weights loaded with
# pretrained=True. Without a tag the architecture's default tag is used.
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
print(model.pretrained_cfg['mean'], model.pretrained_cfg['crop_pct'])  # (0.5, 0.5, 0.5) 0.9

# Model arguments pass through to the model class, a 10 class head, single channel input and regularization.
model = timm.create_model('resnet50', num_classes=10, in_chans=1, drop_rate=0.2, drop_path_rate=0.05)

# Discover models, filters are fnmatch wildcards.
timm.list_models('convnext*')  # architecture names
timm.list_pretrained('resnet50.*')  # architecture.tag names w/ pretrained weights
timm.list_models(module='vision_transformer', pretrained=True)

# Image preprocessing to match the model's pretrained cfg (input size, interpolation, crop, mean / std).
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
data_config = timm.data.resolve_model_data_config(model)
transform = timm.data.create_transform(**data_config, is_training=False)

x = torch.randn(2, 3, 224, 224)
features = model.forward_features(x)  # unpooled features, (2, 197, 192)
pre_logits = model.forward_head(features, pre_logits=True)  # pooled features, (2, 192)
logits = model.forward_head(features)  # same as model(x), (2, 1000)

model.reset_classifier(5)  # replace the classifier w/ a new 5 class one
model.set_input_size(img_size=(384, 384))  # resample the position embedding for a new resolution
logits = model(torch.randn(2, 3, 384, 384))  # (2, 5)

El script de entrenamiento (train.py) expone los argumentos comunes a través de estas banderas:

  • --model selecciona el modelo.
  • --pretrained carga los pesos preentrenados.
  • --num-classes establece el tamaño del clasificador (num_classes).
  • --in-chans establece los canales de entrada (in_chans).
  • --gp establece el tipo de agrupación global (global_pool).
  • --drop establece el dropout del clasificador (drop_rate).
  • --drop-path establece la profundidad estocástica (drop_path_rate).
  • --pretrained-path carga pesos preentrenados desde un archivo local con adaptación del clasificador / convolución de entrada (pretrained_cfg_overlay=dict(file=...)).
  • --initial-checkpoint carga un checkpoint después de crear el modelo, sin adaptación (checkpoint_path).
  • --model-kwargs key=value ... pasa cualquier otro argumento del modelo.

Consulte el quickstart para una introducción.

Nombres de modelos

NombreFuente
resnet50Arquitectura en el registro de timm, con su configuración preentrenada predeterminada (aquí a1_in1k)
resnet50.a1_in1kEtiqueta de arquitectura + preentrenada, una etiqueta desconocida genera un error
hf-hub:timm/resnet50.a1_in1kEl repositorio de Hugging Face Hub, la arquitectura, la configuración preentrenada y los argumentos del modelo provienen de su config.json, @revision selecciona una revisión
local-dir:/path/to/folderCarpeta local con un config.json y pesos, tal como los escribe save_for_hf

El Hub y las fuentes locales leen la configuración incluso con pretrained=False; los pesos solo se cargan con pretrained=True. Un nombre sin prefijo de fuente que contenga /, \ o : lanza un ValueError en lugar de recurrir a un modelo del registro con el mismo nombre. hf_hub: es un alias obsoleto de hf-hub:.

Argumentos comunes

  • pretrained carga los pesos de la configuración preentrenada, desde state_dict o file si están definidos, en caso contrario desde el Hub (hf_hub_id) cuando huggingface_hub está instalado, o desde la url. La adaptación del clasificador / convolución de entrada a continuación permite crear un modelo preentrenado para el ajuste fino en una sola llamada.
  • num_classes define el tamaño del clasificador, 0 elimina el clasificador. El valor predeterminado proviene de la configuración preentrenada. Al cargar pesos preentrenados, un número de clases diferente descarta los pesos del clasificador (se dejan en la inicialización aleatoria).
  • global_pool establece el tipo de agrupación; las opciones son específicas del modelo (p. ej. avg, max, avgmax, catavgmax para la mayoría de las convnets, token, avg, map para ViT), y '' desactiva la agrupación.
  • in_chans establece los canales de entrada. El valor predeterminado proviene de la cfg preentrenada. Al cargar pesos preentrenados, los pesos de la primera conv se adaptan, si se admite, cuando este valor difiere del número de canales del checkpoint de origen (input_size[0] en la cfg preentrenada).
  • drop_rate establece el dropout del clasificador, compatible con la mayoría de los modelos.
  • drop_path_rate establece la profundidad estocástica, admitida por la mayoría de los modelos.
  • img_size es un argumento de modelos de estilo ViT y otros con un tamaño de entrada fijo; están construidos para la configuración preentrenada input_size a menos que se establezca.
  • dynamic_img_size=True en las familias ViT y EVA vuelve a muestrear el embedding de posición al tamaño de entrada en cada pasada hacia adelante.
  • features_only (con out_indices, output_stride, feature_cls) envuelve el modelo como un backbone de características que devuelve mapas de características, consulte extracción de características.
  • pretrained_cfg reemplaza la configuración preentrenada (una etiqueta, un diccionario o PretrainedCfg).
  • pretrained_cfg_overlay sobrescribe algunos de sus campos, por ejemplo, pretrained_cfg_overlay=dict(file='weights.pth') carga pesos de pretrained=True desde un archivo local, con la adaptación del clasificador / conv de entrada anterior (como lo hace --pretrained-path en train.py).
  • checkpoint_path carga un checkpoint con load_checkpoint después de que se crea el modelo. Es una carga estricta sin adaptación; se usan los pesos EMA si el checkpoint los tiene.
  • cache_dir reemplaza la caché de descarga para los pesos preentrenados y las configuraciones del Hub.
  • device se pasa a la clase del modelo, los parámetros se crean directamente en el dispositivo. device='meta' crea un modelo sin asignar memoria para sus pesos.
  • dtype se pasa a la clase del modelo y los parámetros se crean directamente en ese dtype.
  • scriptable establece las banderas de configuración de capas para el scripting de TorchScript.
  • exportable establece las banderas de configuración de capas para la exportación / el trazado.
  • no_jit establece las banderas de configuración de capa para deshabilitar las capas con guiones de jit.

Los argumentos fijados en None se descartan antes de llegar al modelo, por lo que se aplican los valores predeterminados del modelo. Los argumentos que la clase del modelo no acepta provocan un TypeError en la mayoría de los modelos; algunos ignoran los argumentos desconocidos.

Configuración preentrenada

Las arquitecturas tienen uno o más cfgs preentrenados, uno por etiqueta, registrados con el modelo. Un cfg describe los pesos (ubicación, licencia, origen) y cómo se entrenó el modelo y cómo debería evaluarse con ellos. Los modelos creados por create_model tienen su cfg como un dict en model.pretrained_cfg (model.default_cfg es un alias), las versiones del registro se devuelven como instancias de PretrainedCfg por get_pretrained_cfg.

CampoDescripción
architecture, tagArquitectura del modelo y etiqueta preentrenada
hf_hub_id, url, file, state_dictFuentes de pesos (ver pretrained arriba)
input_size, test_input_size, fixed_input_sizeTamaño de entrada para el entrenamiento (y evaluación predeterminada), tamaño de evaluación utilizado con use_test_size=True (si es diferente), si el modelo tiene un tamaño de entrada fijo (argumento img_size)
interpolation, crop_pct, test_crop_pct, crop_modeEvaluación de la interpolación de redimensionado, la fracción de recorte (con el modo de recorte center predeterminado, la imagen se redimensiona a input_size / crop_pct y luego se recorta desde el centro) y el modo de recorte
mean, stdNormalización de entrada
num_classes, label_names, label_descriptionsTamaño del clasificador y etiquetas (cuando se conocen)
classifier, first_convNombres de los módulos del clasificador y de la primera conv, utilizados para adaptar los pesos al cargar
license, origin_url, paper_ids, paper_name, notesMetadatos de los pesos

Los campos de entrada son lo que resolve_data_config / resolve_model_data_config resuelven en una configuración de datos para las transformaciones y el cargador del conjunto de datos. La cfg describe el punto de control de origen y no se actualiza cuando el modelo se crea o se modifica de manera diferente (num_classes, in_chans, img_size, set_input_size()). Los canales de entrada actuales, el tamaño y la restricción de tamaño fijo del modelo se rastrean por separado: get_model_input_config los devuelve, y resolve_input_data_config resuelve una configuración de datos en relación con ellos (como lo hacen los scripts de entrenamiento, validación e inferencia). get_model_args devuelve los argumentos para reconstruir el modelo tal como está ahora, que save_for_hf escribe en la configuración exportada. Consulte adapt and export models para más detalles.

Interfaz del modelo

Los modelos de timm comparten una interfaz común más allá de forward(): la separación en forward_features() / forward_head(), el restablecimiento del clasificador, las características intermedias, el redimensionamiento de la entrada y los hooks de entrenamiento, como el checkpointing de gradientes y el agrupamiento de parámetros. Esto se describe en la API de modelos de timm, incluyendo qué familias de modelos admiten qué partes.

Puntos de control y el Hub

  • load_checkpoint carga un archivo de checkpoint (PyTorch o .safetensors) en un modelo.
  • load_state_dict lee un archivo de punto de control y devuelve su diccionario de estado.
  • resume_checkpoint restaura el estado del modelo, el optimizador y el escalador de pérdida de un punto de control de train.py y devuelve la época desde la que reanudar.

load_checkpoint y load_state_dict seleccionan los pesos EMA de un checkpoint de train.py de forma predeterminada (use_ema) y eliminan los prefijos de clave module. (DDP) y _orig_mod. (torch.compile).

  • save_for_hf escribe los pesos y un config.json (arquitectura, cfg preentrenado, model_args, label_names) en una carpeta.
  • push_to_hf_hub sube los pesos y la configuración a un repositorio del Hub con una tarjeta de modelo generada si el repositorio no tiene ninguna.

A continuación, el modelo se crea con hf-hub: o local-dir:, consulte compartir y cargar modelos.

import timm
from timm.models import save_for_hf

model = timm.create_model('resnet18', num_classes=4)
# ... fine-tune
save_for_hf(model, 'my_resnet18', model_config=dict(label_names=['a', 'b', 'c', 'd']), safe_serialization=True)
model = timm.create_model('local-dir:my_resnet18', pretrained=True)  # 4 classes, weights and labels restored
print(model.pretrained_cfg['label_names'])

Modelos personalizados

Una función de punto de entrada de modelo decorada con register_model se añade al registro, por lo que puede crearse con create_model y encontrarse con list_models. Los puntos de entrada en timm construyen su modelo con build_model_with_cfg, que gestiona la configuración preentrenada, la carga de pesos preentrenados y features_only.

API

Creación de modelos

timm.create_model

< >

( model_name: strpretrained: bool = Falsepretrained_cfg: typing.Union[str, typing.Dict[str, typing.Any], timm.models._pretrained.PretrainedCfg, NoneType] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict[str, typing.Any]] = Nonecheckpoint_path: typing.Union[str, pathlib.Path, NoneType] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonescriptable: typing.Optional[bool] = Noneexportable: typing.Optional[bool] = Noneno_jit: typing.Optional[bool] = None**kwargs: typing.Any )

Parámetros

  • model_name — Nombre del modelo que se va a instanciar.
  • pretrained — Si se establece en True, carga los pesos preentrenados de ImageNet-1k.
  • pretrained_cfg — Pasa un pretrained_cfg externo para el modelo.
  • pretrained_cfg_overlay — Reemplaza los pares clave-valor en pretrained_cfg base con estos.
  • checkpoint_path — Ruta del checkpoint que se cargará después de que el modelo se inicialice.
  • cache_dir — Anula el directorio de caché de modelos para Hugging Face Hub y los puntos de control de Torch.
  • scriptable — Configura la capa para que el modelo sea scriptable con jit (aún no funciona con todos los modelos).
  • exportable — Configura la capa para que el modelo sea trazable / exportable a ONNX (aún no está completamente implementado/respetado).
  • no_jit — Configura la capa para que el modelo no utilice capas con guiones de jit (hasta ahora, solo activaciones).

Crea un modelo.

Busque la función de punto de entrada del modelo y pase los argumentos relevantes para crear un nuevo modelo.

Consejo: **kwargs se pasará a través de la función de entrada a timm.models.build_model_with_cfg() y luego a la función init() de la clase del modelo. Los valores de kwargs establecidos en None se eliminan antes de pasarlos.

Argumentos de palabra clave: drop_rate (float): Tasa de dropout del clasificador para el entrenamiento. drop_path_rate (float): Tasa de profundidad estocástica para el entrenamiento. global_pool (str): Tipo de agrupación global del clasificador.

Ejemplos:

>>> from timm import create_model

>>> # Create a MobileNetV3-Large model with no pretrained weights.
>>> model = create_model('mobilenetv3_large_100')

>>> # Create a MobileNetV3-Large model with pretrained weights.
>>> model = create_model('mobilenetv3_large_100', pretrained=True)
>>> model.num_classes
1000

>>> # Create a MobileNetV3-Large model with pretrained weights and a new head with 10 classes.
>>> model = create_model('mobilenetv3_large_100', pretrained=True, num_classes=10)
>>> model.num_classes
10

>>> # Create a Dinov2 small model with pretrained weights and save weights in a custom directory.
>>> model = create_model('vit_small_patch14_dinov2.lvd142m', pretrained=True, cache_dir="/data/my-models")
>>> # Data will be stored at */data/my-models/models--timm--vit_small_patch14_dinov2.lvd142m/*

Descubrimiento de modelos

timm.list_models

< >

( filter: typing.Union[str, typing.Iterable[str]] = ''module: typing.Union[str, typing.Iterable[str]] = ''pretrained: bool = Falseexclude_filters: typing.Union[str, typing.Iterable[str]] = ''name_matches_cfg: bool = Falseinclude_tags: typing.Optional[bool] = None )

Parámetros

  • filter — Filtro(s) comodín que funcionan con fnmatch.
  • module — Limita la selección del modelo a submódulo(s) específico(s) (p. ej., ‘vision_transformer’).
  • pretrained — Incluye solo modelos con pesos preentrenados válidos si es True.
  • exclude_filters — Filtro(s) con comodines para excluir modelos después de incluirlos con filter.
  • name_matches_cfg — Incluye solo los modelos cuyo model_name coincide con el nombre de default_cfg (excluye algunos alias).
  • include_tags — Incluye etiquetas preentrenadas en los nombres de los modelos (model.tag). Si es None, se establece en el valor de pretrained.

Devuelve una lista de los nombres de modelos disponibles, ordenados de forma natural.

Ejemplo: list_models(‘gluon_resnet’) — devuelve todos los modelos que comienzan por ‘gluon_resnet’ list_models(’resnext*’, ‘resnet’) — devuelve todos los modelos con ‘resnext’ en el módulo ‘resnet’

timm.list_pretrained

< >

( filter: typing.Union[str, typing.Iterable[str]] = ''exclude_filters: typing.Union[str, typing.Iterable[str]] = '' )

Parámetros

  • filter — Filtro(s) comodín que funcionan con fnmatch.
  • exclude_filters — Filtro(s) con comodines para excluir modelos después de incluirlos con filter.

Devuelve una lista de nombres de modelos preentrenados (con etiquetas), ordenados de forma natural.

timm.list_modules

< >

( )

Devuelve una lista ordenada de nombres de módulos que contienen puntos de entrada de modelos.

timm.is_model

< >

( model_name: str )

Comprueba si una arquitectura de modelo está registrada, ignorando cualquier etiqueta preentrenada.

timm.is_model_pretrained

< >

( model_name: str )

Comprueba si un nombre de modelo (con o sin etiqueta) tiene pesos preentrenados registrados.

timm.model_entrypoint

< >

( model_name: strmodule_filter: typing.Optional[str] = None )

Parámetros

  • model_name — Nombre del modelo, con o sin una etiqueta preentrenada.
  • module_filter — Si se establece, se genera una excepción si el modelo no está en este submódulo.

Obtiene la función de punto de entrada del modelo para un nombre de modelo, ignorando cualquier etiqueta preentrenada.

Configuración preentrenada

timm.get_pretrained_cfg

< >

( model_name: strallow_unregistered: bool = True )

Parámetros

  • model_name — Nombre del modelo, con o sin una etiqueta preentrenada.
  • allow_unregistered — Devuelve None en lugar de lanzar una excepción si la arquitectura no tiene cfgs preentrenados.

Lanza

RuntimeError

  • RuntimeError — Si la etiqueta no es válida para la arquitectura, o si no tiene cfgs y allow_unregistered es False.

Obtenga una copia de la cfg preentrenada para un nombre de modelo; se utiliza la etiqueta predeterminada si no se especifica ninguna.

timm.get_pretrained_cfg_value

< >

( model_name: strcfg_key: str )

Lanza

RuntimeError

  • RuntimeError — Si el modelo no tiene un cfg preentrenado registrado o la etiqueta no es válida.

Obtén un valor de cfg preentrenado específico por clave para un nombre de modelo, o None si la clave no existe.

timm.models.get_arch_pretrained_cfgs

< >

( model_name: str )

Parámetros

  • model_name — Nombre del modelo, cualquier etiqueta preentrenada se ignora.

Obtenga copias de todas las configuraciones preentrenadas para una arquitectura de modelo.

clase timm.models.PretrainedCfg

< >

( url: typing.Union[str, typing.Tuple[str, str], NoneType] = Nonefile: typing.Optional[str] = Nonestate_dict: typing.Optional[typing.Dict[str, typing.Any]] = Nonehf_hub_id: typing.Optional[str] = Nonehf_hub_filename: typing.Optional[str] = Nonesource: typing.Optional[str] = Nonearchitecture: typing.Optional[str] = Nonetag: typing.Optional[str] = Nonecustom_load: bool = Falseinput_size: typing.Tuple[int, int, int] = (3, 224, 224)test_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonemin_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonefixed_input_size: bool = Falseinterpolation: str = 'bicubic'crop_pct: float = 0.875test_crop_pct: typing.Optional[float] = Nonecrop_mode: str = 'center'mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406)std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225)num_classes: int = 1000label_offset: typing.Optional[int] = Nonelabel_names: typing.Optional[typing.Tuple[str]] = Nonelabel_descriptions: typing.Optional[typing.Dict[str, str]] = Nonepool_size: typing.Optional[typing.Tuple[int, ...]] = Nonetest_pool_size: typing.Optional[typing.Tuple[int, ...]] = Nonefirst_conv: typing.Optional[str] = Noneclassifier: typing.Optional[str] = Nonelicense: typing.Optional[str] = Nonedescription: typing.Optional[str] = Noneorigin_url: typing.Optional[str] = Nonepaper_name: typing.Optional[str] = Nonepaper_ids: typing.Union[str, typing.Tuple[str], NoneType] = Nonenotes: typing.Optional[typing.Tuple[str]] = None )

Entrada y exportación del modelo actual

timm.models.get_model_input_config

< >

( model: Module )

Devuelve los canales de imagen actuales, el tamaño nominal y la restricción de tamaño fijo.

El tamaño nominal es una recomendación para los modelos flexibles. Los metadatos del punto de control de origen permanecen en model.pretrained_cfg y nunca se modifican aquí.

timm.models.get_model_traits

< >

( model: Module )

Devuelve una copia de las características del modelo, aumentada con las cantidades actuales de canales y clases.

Los atributos existentes in_chans y num_classes siguen siendo los autoritativos; se leen aquí en lugar de duplicarse en los rasgos almacenados. Los atributos ausentes en un envoltorio de características se omiten.

timm.models.get_model_args

< >

( model: Moduleoverrides: typing.Optional[typing.Dict[str, typing.Any]] = None )

Devuelve los argumentos de reconstrucción, incluidos los cambios compatibles realizados después de la construcción.

Los argumentos de tiempo de ejecución se excluyen mediante la fábrica. Las tasas de omisión se omiten a menos que se especifiquen explícitamente en las sobrescripciones. Los argumentos de arquitectura no serializables requieren un reemplazo serializable explícito al exportar.

timm.models.resolve_model_input_args

< >

( model_name: strargs: typing.Optional[typing.Dict[str, typing.Any]] = None**model_kwargs )

Resuelve las solicitudes de entrada del script en argumentos para create_model.

Los argumentos del modelo guardado son valores predeterminados. Las solicitudes explícitas de canal/tamaño seleccionan el objetivo sin sobrescribir los metadatos que describen el punto de control de origen.

timm.models.adapt_input_conv

< >

( in_chans: intconv_weight: Tensorbase_chans: int = 3 )

Parámetros

  • in_chans — Número de canales de entrada para el modelo objetivo.
  • conv_weight — Pesos preentrenados de Conv2d en disposición OIHW.
  • base_chans — Número de canales de entrada física utilizados para el preentrenamiento. Esto puede diferir de la dimensión de entrada del peso para los tallos space-to-depth.

Lanza

ValueError o NotImplementedError

  • ValueError — Si el número de canales no es positivo.
  • NotImplementedError — Si el formato de los pesos no se puede adaptar.

Adapta los pesos de la convolución de entrada preentrenada a un número de canales diferente.

Puntos de control y Hub

timm.models.load_checkpoint

< >

( model: Modulecheckpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'strict: bool = Trueremap: bool = Falsefilter_fn: typing.Optional[typing.Callable] = Noneweights_only: bool = True )

Parámetros

  • model — Modelo en el que se cargará el punto de control.
  • checkpoint_path — Ruta al archivo de punto de control.
  • use_ema — Si se deben usar los pesos EMA si están disponibles.
  • device — Dispositivo en el que cargar el punto de control.
  • strict — Si se debe aplicar estrictamente la coincidencia de las claves de state_dict.
  • remap — Si se deben remapear las claves del state dict por orden.
  • filter_fn — Función opcional para filtrar el state dict.
  • weights_only — Si se deben cargar solo los pesos (parámetro de torch.load).

Cargar el punto de control en el modelo.

Native PyTorch checkpoints are loaded as state dictionaries. NumPy .npz/.npy` checkpoints are foreign, model-specific formats and are delegated to the model's `load_pretrained helper.

timm.models.load_state_dict

< >

( checkpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'weights_only: bool = True )

Parámetros

  • checkpoint_path — Ruta al archivo de punto de control.
  • use_ema — Si se deben usar los pesos EMA si están disponibles.
  • device — Dispositivo en el que cargar el punto de control.
  • weights_only — Si se deben cargar solo los pesos (parámetro de torch.load).

Cargar el diccionario de estado desde el archivo de punto de control.

timm.models.resume_checkpoint

< >

( model: Modulecheckpoint_path: stroptimizer: typing.Optional[torch.optim.Optimizer] = Noneloss_scaler: typing.Optional[typing.Any] = Nonelog_info: bool = Trueweights_only: bool = True )

Parámetros

  • model — Modelo en el que se cargará el punto de control.
  • checkpoint_path — Ruta al archivo de punto de control.
  • optimizer — Optimizador opcional para restaurar el estado.
  • loss_scaler — Escalador de pérdida AMP opcional para restaurar el estado.
  • log_info — Si se registran los datos de carga.
  • weights_only — Si se deben cargar solo los pesos mediante torch.load.

Reanudar el entrenamiento desde un punto de control.

timm.models.save_for_hf

< >

( model: Modulesave_directory: strmodel_config: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonesafe_serialization: typing.Union[bool, typing.Literal['both']] = Falsedata_config: typing.Optional[dict] = None )

Guarde los pesos nativos y su configuración actual de modelo y preprocesamiento.

timm.models.push_to_hf_hub

< >

( model: Modulerepo_id: strcommit_message: str = 'Add model'token: typing.Optional[str] = Nonerevision: typing.Optional[str] = Noneprivate: bool = Falsecreate_pr: bool = Falsemodel_config: typing.Optional[dict] = Nonemodel_card: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonetask_name: str = 'image-classification'safe_serialization: typing.Union[bool, typing.Literal['both']] = 'both'data_config: typing.Optional[dict] = None )

Parámetros

  • (…) —
  • model_args — Argumentos de reconstrucción explícitos que complementan a los registrados por la fábrica.
  • data_config — Preprocesamiento utilizado con el punto de control exportado, incluido el tamaño de entrada y la normalización.
  • safe_serialization (bool o "both", opcional, valor predeterminado False) — Si se guarda el modelo usando safetensors o de la forma tradicional de PyTorch (que usa pickle). Puede establecerse en "both" para subir tanto los pesos seguros como los inseguros.

Modelos personalizados

timm.models.register_model

< >

( fn: typing.Callable[..., typing.Any] )

Parámetros

  • fn — Punto de entrada del modelo fn, registrado bajo su name.

Decorador que registra una función de punto de entrada de un modelo y cualquier configuración preentrenada en los default_cfgs de su módulo.

Registrar un nombre que ya existe sobrescribe el registro anterior y sus cfgs preentrenados.

timm.models.build_model_with_cfg

< >

( model_cls: typing.Union[typing.Type[~ModelT], typing.Callable[..., ~ModelT]]variant: strpretrained: boolpretrained_cfg: typing.Optional[typing.Dict] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict] = Nonemodel_cfg: typing.Optional[typing.Any] = Nonefeature_cfg: typing.Optional[typing.Dict] = Nonepretrained_strict: bool = Truepretrained_filter_fn: typing.Optional[typing.Callable] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonekwargs_filter: typing.Optional[typing.Tuple[str]] = Nonepretrained_model_args: typing.Optional[typing.Dict] = None**kwargs )

Parámetros

  • model_cls — Clase del modelo
  • variant — Nombre de la variante del modelo
  • pretrained — Carga los pesos preentrenados
  • pretrained_cfg — Configuración de pesos/tarea preentrenada del modelo
  • pretrained_cfg_overlay — Entradas que reemplazarán a las de pretrained_cfg
  • model_cfg — Configuración de la arquitectura del modelo
  • feature_cfg — Configuración del adaptador de extracción de características
  • pretrained_strict — Cargar los pesos preentrenados de forma estricta
  • pretrained_filter_fn — Función de filtro para los pesos preentrenados
  • cache_dir — Anula el directorio de caché de modelos para Hugging Face Hub y los puntos de control de Torch
  • kwargs_filter — Claves de Kwargs para filtrar (eliminar) antes de pasarlas al modelo
  • pretrained_model_args — Argumentos de reconstrucción que describen el punto de control de origen.
  • **kwargs — Argumentos del modelo que se pasan al init del modelo

Construir un modelo con default_cfg especificado y model_cfg opcional

Esta función auxiliar facilita la construcción de un modelo, incluyendo:

  • gestión de default_cfg y la carga de pesos preentrenados asociados
  • pasando el parámetro opcional model_cfg para modelos con especificación de arquitectura basada en configuración
  • adaptación de modelos features_only
  • configuración de poda / adaptación del modelo
Update on GitHub