骨干网络
骨干网络是一种用于特征提取的模型,用于更高级的计算机视觉任务,如目标检测和图像分类。 Transformers 提供了一个 AutoBackbone 类,用于从预训练的模型权重初始化 Transformers 骨干网络,以及两个实用程序类
- BackboneMixin 支持从 Transformers 或 timm 初始化骨干网络,并包含用于返回输出特征和索引的函数。
- BackboneConfigMixin 设置骨干网络配置的输出特征和索引。
timm 模型使用 TimmBackbone 和 TimmBackboneConfig 类加载。
以下模型支持骨干网络
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- NAT
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
将此实例序列化为 Python 字典。覆盖 PretrainedConfig
中的默认 to_dict()
以包含 out_features
和 out_indices
属性。
BackboneConfigMixin
用于支持处理主干配置的 `out_features` 和 `out_indices` 属性的混合类。
将此实例序列化为 Python 字典。覆盖 PretrainedConfig
中的默认 to_dict()
以包含 out_features
和 out_indices
属性。
TimmBackbone
timm 模型的包装类,用作主干网络。这使得 timm 模型可以与库中的其他模型互换使用,并保持相同的 API。
TimmBackboneConfig
类 transformers.TimmBackboneConfig
< source >( backbone = None num_channels = 3 features_only = True use_pretrained_backbone = True out_indices = None freeze_batch_norm_2d = False **kwargs )
参数
- backbone (
str
, 可选) — 要加载的 timm 检查点。 - num_channels (
int
, 可选, 默认值为 3) — 输入通道的数量。 - features_only (
bool
, 可选, 默认值为True
) — 是否仅输出特征或也输出 logits。 - use_pretrained_backbone (
bool
, 可选, 默认值为True
) — 是否使用预训练的骨干网络。 - out_indices (
List[int]
, 可选) — 如果用作骨干网络,则为要输出的特征的索引列表。可以是 0、1、2 等中的任何一个(取决于模型有多少个阶段)。如果未设置,则默认为最后阶段。 - freeze_batch_norm_2d (
bool
, 可选, 默认值为False
) — 将提供的模块的所有BatchNorm2d
和SyncBatchNorm
层转换为FrozenBatchNorm2d
。
这是用于存储 timm 骨干网络 TimmBackbone 的配置的配置类。
它用于根据指定的参数实例化 timm 骨干网络模型,定义模型。
配置对象继承自 PretrainedConfig,可用于控制模型输出。有关更多信息,请阅读 PretrainedConfig 的文档。
示例
>>> from transformers import TimmBackboneConfig, TimmBackbone
>>> # Initializing a timm backbone
>>> configuration = TimmBackboneConfig("resnet50")
>>> # Initializing a model from the configuration
>>> model = TimmBackbone(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config