timm documentation

Модели

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Модели

На этой странице представлена справочная документация API для создания и поиска моделей timm, их предобученных конфигураций и вспомогательных средств для чекпоинтов / Hub, а также обзор интерфейса, общего для моделей timm. Отдельные архитектуры описаны в сводках по моделям и на страницах отдельных моделей.

Использование

Модели создаются по имени с помощью create_model. Имя выбирает архитектуру, зарегистрированную в timm, при необходимости с тегом предобучения после . (resnet50.a1_in1k), либо модель из Hugging Face Hub или из локальной папки с помощью префикса источника. Именованные аргументы, которые create_model не использует, передаются через функцию-точку входа модели в конструктор класса модели, поэтому можно задать любой аргумент, специфичный для модели.

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)

Скрипт обучения (train.py) предоставляет общие аргументы через эти флаги:

  • --model выбирает модель.
  • --pretrained загружает предобученные веса.
  • --num-classes задаёт размер классификатора (num_classes).
  • --in-chans задаёт количество входных каналов (in_chans).
  • --gp задаёт тип глобального пулинга (global_pool).
  • --drop задаёт dropout классификатора (drop_rate).
  • --drop-path задаёт стохастическую глубину (drop_path_rate).
  • --pretrained-path загружает предобученные веса из локального файла с адаптацией классификатора / входных свёрток (pretrained_cfg_overlay=dict(file=...)).
  • --initial-checkpoint загружает контрольную точку после создания модели, без адаптации (checkpoint_path).
  • --model-kwargs key=value ... передаёт любые другие аргументы модели.

См. быстрый старт для введения.

Названия моделей

ИмяИсточник
resnet50Архитектура из реестра timm с её конфигурацией предобучения по умолчанию (здесь a1_in1k)
resnet50.a1_in1kАрхитектура + предобученный тег, неизвестный тег вызывает ошибку
hf-hub:timm/resnet50.a1_in1kРепозиторий Hugging Face Hub, архитектура, предобученный cfg и аргументы модели берутся из его config.json, @revision выбирает ревизию
local-dir:/path/to/folderЛокальная папка с config.json и весами, записанными с помощью save_for_hf

Hub и локальные источники читают конфигурацию даже при pretrained=False, веса загружаются только при pretrained=True. Имя без префикса источника, содержащее /, \ или :, вызывает ValueError вместо использования модели с тем же именем из реестра. hf_hub: — устаревший псевдоним для hf-hub:.

Общие аргументы

  • pretrained загружает веса предобученной конфигурации из state_dict или file, если они заданы, иначе из Hub (hf_hub_id), если установлен huggingface_hub, или из url. Адаптация классификатора / входного свёрточного слоя ниже позволяет создать предобученную модель для дообучения одним вызовом.
  • num_classes задаёт размер классификатора, 0 удаляет классификатор. Значение по умолчанию берётся из предобученного cfg. При загрузке предобученных весов, если количество классов отличается, веса классификатора отбрасываются (остаётся случайная инициализация).
  • global_pool задаёт тип пулинга; варианты зависят от модели (например, avg, max, avgmax, catavgmax для большинства свёрточных сетей, token, avg, map для ViT), '' отключает пулинг.
  • in_chans задаёт количество входных каналов. Значение по умолчанию берётся из предобученного cfg. При загрузке предобученных весов первые веса свёртки адаптируются (если это поддерживается), если указанное значение отличается от количества каналов в исходном чекпоинте (input_size[0] в предобученном cfg).
  • drop_rate задаёт dropout для классификатора, поддерживается большинством моделей.
  • drop_path_rate задаёт стохастическую глубину, поддерживаемую большинством моделей.
  • img_size — это аргумент для моделей в стиле ViT и других моделей с фиксированным размером входа; по умолчанию они настраиваются под input_size из предобученной конфигурации, если только он не задан явно.
  • dynamic_img_size=True в семействах ViT и EVA выполняет ресемплинг позиционного эмбеддинга под размер входа на каждом проходе forward.
  • features_only (с out_indices, output_stride, feature_cls) оборачивает модель как фичевый бэкбон, возвращающий карты признаков, см. извлечение признаков.
  • pretrained_cfg заменяет предобученный cfg (тег, словарь или PretrainedCfg).
  • pretrained_cfg_overlay переопределяет некоторые из его полей, например, pretrained_cfg_overlay=dict(file='weights.pth') загружает веса с pretrained=True из локального файла, с адаптацией классификатора / входного свёрточного слоя, описанной выше (как это делает --pretrained-path в train.py).
  • checkpoint_path загружает чекпоинт с помощью load_checkpoint после создания модели. Загрузка выполняется строго, без адаптации; если в чекпоинте есть веса EMA, используются они.
  • cache_dir переопределяет кэш загрузок для предобученных весов и конфигураций Hub.
  • device передаётся в класс модели, параметры создаются непосредственно на устройстве. device='meta' создаёт модель без выделения памяти для её весов.
  • dtype передаётся в класс модели, параметры создаются сразу в этом типе данных.
  • scriptable устанавливает флаги конфигурации слоя для скриптинга TorchScript.
  • exportable устанавливает флаги конфигурации слоя для экспорта / трассировки.
  • no_jit устанавливает флаги конфигурации слоёв для отключения слоёв, подготовленных с помощью jit.

Аргументы, установленные в None, отбрасываются до передачи в модель, поэтому применяются значения по умолчанию модели. Аргументы, которые класс модели не принимает, вызывают TypeError в большинстве моделей; некоторые игнорируют неизвестные аргументы.

Конфигурация предобученной модели

Архитектуры имеют один или несколько предобученных cfg, по одному на каждый тег, зарегистрированных с моделью. Cfg описывает веса (местоположение, лицензия, происхождение) и то, как модель была обучена и как следует оценивать её с их использованием. Модели, созданные с помощью create_model, имеют свой cfg в виде словаря в model.pretrained_cfg (model.default_cfg является псевдонимом), версии из реестра возвращаются в виде экземпляров PretrainedCfg с помощью get_pretrained_cfg.

ПолеОписание
architecture, tagАрхитектура модели и тег предобучения
hf_hub_id, url, file, state_dictИсточники весов (см. pretrained выше)
input_size, test_input_size, fixed_input_sizeРазмер входных данных для обучения (и оценки по умолчанию), размер данных для оценки, используемый при use_test_size=True (если он отличается), наличие у модели фиксированного размера входа (аргумент img_size)
interpolation, crop_pct, test_crop_pct, crop_modeИнтерполяция при изменении размера, доля кадрирования (при режиме кадрирования по умолчанию center изображение изменяется до размера input_size / crop_pct, затем кадрируется по центру) и режим кадрирования
mean, stdНормализация входных данных
num_classes, label_names, label_descriptionsРазмер классификатора и метки (если известны)
classifier, first_convИмена модулей классификатора и первого слоя свёртки, используемые для адаптации весов при загрузке
license, origin_url, paper_ids, paper_name, notesМетаданные весов

Поля ввода — это то, к чему resolve_data_config / resolve_model_data_config приводит конфигурацию данных для набора данных, трансформаций и загрузчика. Параметр cfg описывает исходную контрольную точку и не обновляется при создании модели или её изменении (num_classes, in_chans, img_size, set_input_size()). Текущие входные каналы, размер и ограничение фиксированного размера модели отслеживаются отдельно: get_model_input_config возвращает их, а resolve_input_data_config приводит конфигурацию данных к этим значениям (как это делают скрипты обучения, валидации и инференса). get_model_args возвращает аргументы для пересоздания модели в её текущем виде, которые save_for_hf записывает в экспортированную конфигурацию. Подробности см. в разделе адаптация и экспорт моделей.

Интерфейс модели

Модели timm имеют общий интерфейс, выходящий за рамки forward(): разделение на forward_features() / forward_head(), сброс классификатора, промежуточные признаки, изменение размера входных данных и хуки для обучения, такие как градиентный чекпоинтинг и группировка параметров. Это описано в API моделей timm, включая информацию о том, какие семейства моделей поддерживают какие части интерфейса.

Чекпоинты и Hub

  • load_checkpoint загружает файл контрольной точки (PyTorch или .safetensors) в модель.
  • load_state_dict читает файл контрольной точки и возвращает её state dict.
  • resume_checkpoint восстанавливает состояние модели, оптимизатора и масштабирующего коэффициента потерь из контрольной точки train.py и возвращает номер эпохи, с которой следует продолжить обучение.

load_checkpoint и load_state_dict по умолчанию (use_ema) выбирают веса EMA из контрольной точки train.py и удаляют префиксы ключей module. (DDP) и _orig_mod. (torch.compile).

  • save_for_hf записывает веса и config.json (архитектура, pretrained cfg, model_args, label_names) в папку.
  • push_to_hf_hub загружает веса и конфигурацию в репозиторий Hub, создавая сгенерированную карточку модели, если её нет в репозитории.

Затем модель создаётся с помощью hf-hub: или local-dir:, см. раздел о шаринге и загрузке моделей.

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'])

Пользовательские модели

Функция-входная точка модели, декорированная с помощью register_model, добавляется в реестр, поэтому её можно создать с помощью create_model и найти с помощью list_models. Входные точки в timm строят свою модель с помощью build_model_with_cfg, который обрабатывает конфигурацию предобученной модели, загрузку предобученных весов и features_only.

API

Создание модели

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 )

Параметры

  • model_name — Название модели для создания экземпляра.
  • pretrained — если установлено в True, загружаются предобученные веса ImageNet-1k.
  • pretrained_cfg — Передайте внешний pretrained_cfg для модели.
  • pretrained_cfg_overlay — Заменяет пары ключ-значение в базовом pretrained_cfg на указанные.
  • checkpoint_path — Путь к контрольной точке, загружаемой после инициализации модели.
  • cache_dir — Переопределяет каталог кэша моделей для Hugging Face Hub и контрольных точек Torch.
  • scriptable — Настройка конфигурации слоя, чтобы модель была jit-скриптуемой (пока не работает для всех моделей).
  • exportable — Настройка конфигурации слоя, чтобы модель можно было трассировать / экспортировать в ONNX (пока не полностью реализовано/соблюдается).
  • no_jit — Настройка конфигурации слоя, при которой модель не использует слои, подготовленные с помощью jit (пока что только активации).

Создайте модель.

Найдите функцию-точку входа модели и передайте в неё соответствующие аргументы для создания новой модели.

Совет: **kwargs передаются через entrypoint fn в timm.models.build_model_with_cfg(), а затем в метод init класса модели. Значения kwargs, равные None, удаляются перед передачей.

Аргументы по имени: drop_rate (float): Коэффициент dropout для классификатора при обучении. drop_path_rate (float): Коэффициент отбрасывания стохастической глубины при обучении. global_pool (str): Тип глобального пулинга для классификатора.

Примеры:

>>> 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/*

Поиск моделей

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 )

Параметры

  • filter — Фильтр(ы) с использованием подстановочных знаков, работающие с fnmatch.
  • module — Ограничивает выбор модели конкретным подмодулем (например, ‘vision_transformer’).
  • pretrained — если True, включать только модели с валидными предобученными весами.
  • exclude_filters — Фильтр(ы) с подстановочными символами для исключения моделей после их включения с помощью filter.
  • name_matches_cfg — Включать только модели, у которых model_name совпадает с именем default_cfg (исключает некоторые алиасы).
  • include_tags — Включать предобученные теги в имена моделей (model.tag). Если None, устанавливается значение pretrained.

Возвращает список доступных имён моделей, отсортированный естественным образом.

Пример: list_models(‘gluon_resnet’) — возвращает все модели, начинающиеся с ‘gluon_resnet’ list_models(’resnext*’, ‘resnet’) — возвращает все модели с ‘resnext’ в модуле ‘resnet’

timm.list_pretrained

< >

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

Параметры

  • filter — Фильтр(ы) с использованием подстановочных знаков, работающие с fnmatch.
  • exclude_filters — Фильтр(ы) с подстановочными символами для исключения моделей после их включения с помощью filter.

Возвращает список имён предобученных моделей (с тегами), отсортированный естественным образом.

timm.list_modules

< >

( )

Возвращает отсортированный список имён модулей, содержащих точки входа модели.

timm.is_model

< >

( model_name: str )

Проверьте, зарегистрирована ли архитектура модели, игнорируя любой предобученный тег.

timm.is_model_pretrained

< >

( model_name: str )

Проверьте, зарегистрированы ли предобученные веса для имени модели (с тегом или без него).

timm.model_entrypoint

< >

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

Параметры

  • model_name — Название модели, с pretrained-тегом или без него.
  • module_filter — если задано, вызывает ошибку, если модель не входит в этот подмодуль.

Получить функцию-точку входа модели для заданного имени модели, игнорируя любой тег предобученной модели.

Конфигурация предобученной модели

timm.get_pretrained_cfg

< >

( model_name: strallow_unregistered: bool = True )

Параметры

  • model_name — Название модели, с pretrained-тегом или без него.
  • allow_unregistered — Возвращает None вместо исключения, если для архитектуры нет предобученных конфигураций.

Исключения

RuntimeError

  • RuntimeError — если тег недействителен для данной архитектуры, либо у него нет cfgs, а allow_unregistered равно False.

Получите копию предобученного cfg для имени модели; если тег не указан, используется тег по умолчанию.

timm.get_pretrained_cfg_value

< >

( model_name: strcfg_key: str )

Исключения

RuntimeError

  • RuntimeError — если для модели не зарегистрирован предобученный cfg или тег недействителен.

Получить конкретное значение предобученного cfg по ключу для имени модели, None, если ключ не существует.

timm.models.get_arch_pretrained_cfgs

< >

( model_name: str )

Параметры

  • model_name — Название модели, любой предобученный тег игнорируется.

Получите копии всех предобученных cfg для архитектуры модели.

класс 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 )

Текущий вход модели и экспорт

timm.models.get_model_input_config

< >

( model: Module )

Возвращает текущие каналы изображения, номинальный размер и ограничение фиксированного размера.

Номинальный размер является рекомендацией для гибких моделей. Метаданные исходной контрольной точки сохраняются в model.pretrained_cfg и никогда не изменяются здесь.

timm.models.get_model_traits

< >

( model: Module )

Возвращает копию характеристик модели, дополненную текущим количеством каналов и классов.

Существующие атрибуты in_chans и num_classes остаются определяющими; здесь они читаются, а не дублируются в сохранённых характеристиках. Атрибуты, отсутствующие в обёртке признака, пропускаются.

timm.models.get_model_args

< >

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

Возвращает аргументы реконструкции, включая поддерживаемые изменения, внесённые после конструирования.

Аргументы времени выполнения исключаются фабрикой. Коэффициенты отбрасывания (drop rates) опускаются, если они явно не указаны в переопределениях. Аргументы архитектуры, не поддерживающие сериализацию, требуют явной замены на сериализуемые при экспорте.

timm.models.resolve_model_input_args

< >

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

Разрешите запросы входных данных скрипта в аргументы для create_model.

Сохранённые аргументы модели являются значениями по умолчанию. Явные запросы канала/размера выбирают целевой объект, не перезаписывая метаданные, описывающие исходную контрольную точку.

timm.models.adapt_input_conv

< >

( in_chans: intconv_weight: Tensorbase_chans: int = 3 )

Параметры

  • in_chans — количество входных каналов для целевой модели.
  • conv_weight — Предобученные веса Conv2d в раскладке OIHW.
  • base_chans — количество физических входных каналов, используемых для предварительного обучения. Это значение может отличаться от входного измерения весов для стеблей space-to-depth.

Исключения

ValueError или NotImplementedError

  • ValueError — если количество каналов не является положительным.
  • NotImplementedError — если формат весов невозможно адаптировать.

Адаптируйте предобученные веса входной свёртки под другое количество каналов.

Чекпоинты и 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 )

Параметры

  • model — Модель, в которую загружается контрольная точка.
  • checkpoint_path — Путь к файлу контрольной точки.
  • use_ema — Использовать ли веса EMA, если они доступны.
  • device — Устройство, на которое загружается контрольная точка.
  • strict — Строго ли требовать совпадения ключей state_dict.
  • remap — Перемещать ли ключи state dict в соответствии с их порядком.
  • filter_fn — Необязательная функция для фильтрации state dict.
  • weights_only — Загружать только веса (параметр torch.load).

Загрузите контрольную точку в модель.

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 )

Параметры

  • checkpoint_path — Путь к файлу контрольной точки.
  • use_ema — Использовать ли веса EMA, если они доступны.
  • device — Устройство, на которое загружается контрольная точка.
  • weights_only — Загружать только веса (параметр torch.load).

Загрузить словарь состояния из файла контрольной точки.

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 )

Параметры

  • model — Модель, в которую загружается контрольная точка.
  • checkpoint_path — Путь к файлу контрольной точки.
  • optimizer — Необязательный оптимизатор для восстановления состояния.
  • loss_scaler — Необязательный масштабатор потерь AMP для восстановления состояния.
  • log_info — Включает ли ведение журнала информации о загрузке.
  • weights_only — Загружать ли только веса с помощью torch.load.

Возобновление обучения из контрольной точки.

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 )

Сохраните нативные веса, а также текущие конфигурации модели и предобработки.

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 )

Параметры

  • (…) —
  • model_args — Явные аргументы реконструкции, дополняющие те, что были записаны фабрикой.
  • data_config — Предобработка, использованная с экспортированной контрольной точкой, включая размер входных данных и нормализацию.
  • safe_serialization (bool или "both", необязательный, по умолчанию False) — Определяет, сохранять ли модель с помощью safetensors или традиционным способом PyTorch (с использованием pickle). Можно установить значение "both", чтобы загрузить как безопасные, так и небезопасные веса.

Пользовательские модели

timm.models.register_model

< >

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

Параметры

  • fn — Точка входа модели fn, зарегистрированная под своим name.

Декоратор, который регистрирует функцию-точку входа модели и все предобученные конфигурации в атрибуте default_cfgs её модуля.

Регистрация имени, которое уже существует, перезаписывает предыдущую регистрацию и её предобученные конфигурации.

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 )

Параметры

  • model_cls — класс модели
  • variant — имя варианта модели
  • pretrained — Загрузить предобученные веса
  • pretrained_cfg — конфигурация предобученных весов/задачи модели
  • pretrained_cfg_overlay — Записи, которые переопределяют записи в pretrained_cfg
  • model_cfg — конфигурация архитектуры модели
  • feature_cfg — Конфигурация адаптера для извлечения признаков
  • pretrained_strict — Загружать предобученные веса строго
  • pretrained_filter_fn — Вызываемая функция для фильтрации предобученных весов
  • cache_dir — Переопределяет каталог кэша моделей для Hugging Face Hub и контрольных точек Torch
  • kwargs_filter — Ключи аргументов kwargs, которые нужно отфильтровать (удалить) перед передачей в модель
  • pretrained_model_args — аргументы реконструкции, описывающие исходную контрольную точку.
  • **kwargs — Аргументы модели, передаваемые в init модели

Создание модели с указанным default_cfg и необязательным model_cfg

Эта вспомогательная функция помогает в построении модели, включая:

  • обработка default_cfg и связанной с ней загрузкой предобученных весов
  • передача необязательного model_cfg для моделей с архитектурной спецификацией на основе конфигурации
  • features_only адаптация модели
  • конфигурация отсечения / адаптация модели
Update on GitHub