timm documentation

模型

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

模型

本页包含用于创建和发现 timm 模型的 API 参考文档,涵盖其预训练配置以及检查点 / 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 ... 用于传递其他模型参数。

请参阅快速入门以获取介绍。

模型名称

名称源代码
resnet50timm 注册表中的架构,及其默认预训练配置(此处为 a1_in1k)
resnet50.a1_in1kArchitecture + 预训练标签,未知标签会引发错误
hf-hub:timm/resnet50.a1_in1kHugging Face Hub 仓库的架构、预训练配置和模型参数来自其 config.json,@revision 用于选择修订版本
local-dir:/path/to/folder包含 config.json 和权重的本地文件夹,由 save_for_hf 写入

Hub 和本地源即使在 pretrained=False 时也会读取配置,但权重仅在 pretrained=True 时加载。 包含 /、\ 或 : 且没有源前缀的名称会引发 ValueError,而不是回退到同名注册表模型。hf_hub: 是 hf-hub: 的已弃用别名。

常用参数

  • pretrained 加载预训练 cfg 的权重,如果设置了 state_dict 或 file,则从其中加载;否则,当安装了 huggingface_hub 时,从 Hub(hf_hub_id)加载,或从 url 加载。下方的分类器 / 输入卷积适配功能允许在一次调用中创建用于微调的预训练模型。
  • num_classes 用于设置分类器的大小,0 表示移除分类器。默认值来自预训练配置。 加载预训练权重时,如果类别数量不同,则会丢弃分类器的权重(保持随机初始化状态)。
  • global_pool 用于设置池化类型,可选项因模型而异(例如,大多数卷积网络支持 avg、max、avgmax、catavgmax,而 ViT 支持 token、avg、map),'' 表示禁用池化。
  • in_chans 用于设置输入通道数。默认值来自预训练配置。在加载预训练权重时,如果该值与源检查点的通道数(预训练配置中的 input_size[0])不同,则在支持的情况下会相应调整第一个卷积层的权重。
  • drop_rate 用于设置分类器的 dropout,大多数模型都支持该参数。
  • drop_path_rate 用于设置随机深度,大多数模型均支持该功能。
  • img_size 是 ViT 风格及其他具有固定输入尺寸模型的参数,除非显式设置,否则它们会采用预训练配置中的 input_size。
  • 在 ViT 和 EVA 系列中,dynamic_img_size=True 会在每次前向传播时将位置嵌入重新采样到输入尺寸。
  • features_only(配合 out_indices、output_stride、feature_cls)将模型封装为特征主干,返回特征图,参见 特征提取。
  • pretrained_cfg 用于替换预训练配置(一个标签、字典或 PretrainedCfg)。
  • pretrained_cfg_overlay 会覆盖其部分字段,例如 pretrained_cfg_overlay=dict(file='weights.pth') 会从本地文件加载 pretrained=True 的权重,并应用上述的分类器 / 输入卷积适配(与 train.py 中的 --pretrained-path 行为一致)。
  • checkpoint_path 会在模型创建后,通过 load_checkpoint 加载检查点。这是一种严格的加载方式,不会进行任何适配;如果检查点中包含 EMA 权重,则会使用这些权重。
  • cache_dir 用于覆盖预训练权重和 Hub 配置的下载缓存。
  • device 会传递给模型类,参数会直接在设备上创建。device='meta' 会创建一个模型,但不为其权重分配内存。
  • dtype 会传递给模型类,参数会直接以该 dtype 创建。
  • scriptable 用于设置 TorchScript 脚本化的层配置标志。
  • exportable 用于设置导出/跟踪的层配置标志。
  • no_jit 会将层配置标志设置为禁用 jit 脚本化层。

设置为 None 的参数在到达模型之前会被丢弃,因此会应用模型的默认值。模型类不接受的参数在大多数模型中会引发 TypeError,少数模型会忽略未知参数。

预训练配置

架构拥有一个或多个预训练 cfg,每个标签对应一个,并注册到模型中。cfg 描述了权重(位置、许可证、来源)以及模型是如何训练的,并应如何使用这些权重进行评估。由 create_model 创建的模型,其 cfg 以字典形式存储在 model.pretrained_cfg 中(model.default_cfg 是别名),注册表中的版本由 get_pretrained_cfg 作为 PretrainedCfg 实例返回。

字段描述
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 解析为数据集的 transforms 和 loader 的数据配置。cfg 描述的是源检查点,当模型被创建或以不同方式修改时(num_classes、in_chans、img_size、set_input_size()),它不会更新。模型当前的输入通道、尺寸和固定尺寸约束是单独跟踪的:get_model_input_config 返回这些值,而 resolve_input_data_config 根据这些值解析数据配置(训练、验证和推理脚本也是如此)。get_model_args 返回用于按当前状态重建模型的参数,save_for_hf 会将其写入导出的配置中。有关详细信息,请参阅 adapt and export models。

模型接口

timm 模型在 forward() 之外共享一套通用接口:包括 forward_features() / forward_head() 的拆分、分类器重置、中间特征、输入尺寸调整,以及梯度检查点和参数分组等训练钩子。这些内容在 timm 模型 API 中有详细说明,包括哪些模型家族支持哪些部分。

检查点与 Hub

  • load_checkpoint 将检查点文件(PyTorch 或 .safetensors)加载到模型中。
  • load_state_dict 读取检查点文件并返回其状态字典。
  • resume_checkpoint 会恢复 train.py 检查点中的模型、优化器和损失缩放器状态,并返回要从中恢复的 epoch。

load_checkpoint 和 load_state_dict 默认会选取 train.py 检查点中的 EMA 权重(use_ema),并移除 module.(DDP)和 _orig_mod.(torch.compile)键前缀。

  • save_for_hf 会将权重以及 config.json(包含架构、预训练配置、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 脚本化层(目前仅涉及激活函数)。

创建一个模型。

查找模型的入口函数,并传入相关参数以创建新模型。

Tip: **kwargs 会通过入口函数 fn 传递到 timm.models.build_model_with_cfg(),然后传递到模型类的 init()。在传递之前,值为 None 的 kwargs 会被移除。

Keyword Args: drop_rate (float): 训练时分类器的 dropout 率。 drop_path_rate (float): 训练时随机深度(Stochastic depth)的丢弃率。 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’) — 返回 ‘resnet’ 模块中所有包含 ‘resnext’ 的模型

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 — 模型名称,可以带预训练标签,也可以不带。
  • module_filter — 如果已设置,当模型不在此子模块中时引发错误。

获取模型名称对应的模型入口函数,忽略任何预训练标签。

预训练配置

timm.get_pretrained_cfg

< >

( model_name: strallow_unregistered: bool = True )

参数

  • model_name — 模型名称,可以带预训练标签,也可以不带。
  • allow_unregistered — 如果该架构没有预训练 cfgs,则返回 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 )

返回重建参数,包括构造后所做的受支持更改。

运行时参数会被工厂排除。除非在覆盖项中明确提供,否则丢弃率会被省略。在导出时,不可序列化的架构参数需要显式提供可序列化的替代项。

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 — 采用 OIHW 布局的预训练 Conv2d 权重。
  • 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 — 是否按顺序重新映射状态字典的键。
  • filter_fn — 可选函数,用于过滤状态字典。
  • 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 中注册模型入口函数 fn 及其任何预训练配置。

注册一个已存在的名称会覆盖之前的注册及其预训练 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