timm documentation
Modelos
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:
--modelselecciona el modelo.--pretrainedcarga los pesos preentrenados.--num-classesestablece el tamaño del clasificador (num_classes).--in-chansestablece los canales de entrada (in_chans).--gpestablece el tipo de agrupación global (global_pool).--dropestablece el dropout del clasificador (drop_rate).--drop-pathestablece la profundidad estocástica (drop_path_rate).--pretrained-pathcarga pesos preentrenados desde un archivo local con adaptación del clasificador / convolución de entrada (pretrained_cfg_overlay=dict(file=...)).--initial-checkpointcarga 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
| Nombre | Fuente |
|---|---|
resnet50 | Arquitectura en el registro de timm, con su configuración preentrenada predeterminada (aquí a1_in1k) |
resnet50.a1_in1k | Etiqueta de arquitectura + preentrenada, una etiqueta desconocida genera un error |
hf-hub:timm/resnet50.a1_in1k | El 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/folder | Carpeta 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
pretrainedcarga los pesos de la configuración preentrenada, desdestate_dictofilesi están definidos, en caso contrario desde el Hub (hf_hub_id) cuandohuggingface_hubestá instalado, o desde laurl. 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_classesdefine el tamaño del clasificador,0elimina 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_poolestablece el tipo de agrupación; las opciones son específicas del modelo (p. ej.avg,max,avgmax,catavgmaxpara la mayoría de las convnets,token,avg,mappara ViT), y''desactiva la agrupación.in_chansestablece 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_rateestablece el dropout del clasificador, compatible con la mayoría de los modelos.drop_path_rateestablece la profundidad estocástica, admitida por la mayoría de los modelos.img_sizees un argumento de modelos de estilo ViT y otros con un tamaño de entrada fijo; están construidos para la configuración preentrenadainput_sizea menos que se establezca.dynamic_img_size=Trueen 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(conout_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_cfgreemplaza la configuración preentrenada (una etiqueta, un diccionario oPretrainedCfg).pretrained_cfg_overlaysobrescribe algunos de sus campos, por ejemplo,pretrained_cfg_overlay=dict(file='weights.pth')carga pesos depretrained=Truedesde un archivo local, con la adaptación del clasificador / conv de entrada anterior (como lo hace--pretrained-pathentrain.py).checkpoint_pathcarga un checkpoint conload_checkpointdespué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_dirreemplaza la caché de descarga para los pesos preentrenados y las configuraciones del Hub.devicese 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.dtypese pasa a la clase del modelo y los parámetros se crean directamente en ese dtype.scriptableestablece las banderas de configuración de capas para el scripting de TorchScript.exportableestablece las banderas de configuración de capas para la exportación / el trazado.no_jitestablece 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.
| Campo | Descripción |
|---|---|
architecture, tag | Arquitectura del modelo y etiqueta preentrenada |
hf_hub_id, url, file, state_dict | Fuentes de pesos (ver pretrained arriba) |
input_size, test_input_size, fixed_input_size | Tamañ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_mode | Evaluació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, std | Normalización de entrada |
num_classes, label_names, label_descriptions | Tamaño del clasificador y etiquetas (cuando se conocen) |
classifier, first_conv | Nombres 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, notes | Metadatos 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_checkpointcarga un archivo de checkpoint (PyTorch o.safetensors) en un modelo.load_state_dictlee un archivo de punto de control y devuelve su diccionario de estado.resume_checkpointrestaura el estado del modelo, el optimizador y el escalador de pérdida de un punto de control detrain.pyy 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_hfescribe los pesos y unconfig.json(arquitectura, cfg preentrenado,model_args,label_names) en una carpeta.push_to_hf_hubsube 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
< source >( 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
< source >( 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
< source >( filter: typing.Union[str, typing.Iterable[str]] = ''exclude_filters: typing.Union[str, typing.Iterable[str]] = '' )
Devuelve una lista de nombres de modelos preentrenados (con etiquetas), ordenados de forma natural.
Devuelve una lista ordenada de nombres de módulos que contienen puntos de entrada de modelos.
Comprueba si una arquitectura de modelo está registrada, ignorando cualquier etiqueta preentrenada.
Comprueba si un nombre de modelo (con o sin etiqueta) tiene pesos preentrenados registrados.
timm.model_entrypoint
< source >( model_name: strmodule_filter: typing.Optional[str] = None )
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
< source >( 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
< source >( 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
< source >( model_name: str )
Obtenga copias de todas las configuraciones preentrenadas para una arquitectura de modelo.
clase timm.models.PretrainedCfg
< source >( 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
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í.
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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( checkpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'weights_only: bool = True )
Cargar el diccionario de estado desde el archivo de punto de control.
timm.models.resume_checkpoint
< source >( 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
< source >( 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
< source >( 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 (
boolo"both", opcional, valor predeterminadoFalse) — Si se guarda el modelo usandosafetensorso de la forma tradicional de PyTorch (que usapickle). Puede establecerse en"both"para subir tanto los pesos seguros como los inseguros.
Modelos personalizados
timm.models.register_model
< source >( fn: typing.Callable[..., typing.Any] )
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
< source >( 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