Transformers documentation
Backbone
Backbone
Backbone — это модель, используемая для извлечения признаков для задач компьютерного зрения высокого уровня, таких как обнаружение объектов и классификация изображений. Transformers предоставляет класс AutoBackbone для инициализации backbone Transformers из предобученных весов модели, а также два вспомогательных класса:
- BackboneMixin позволяет инициализировать backbone из Transformers или timm и включает функции для возврата выходных признаков и индексов.
- BackboneConfigMixin задаёт выходные признаки и индексы конфигурации бэкбона.
Модели timm загружаются с помощью классов TimmBackbone и TimmBackboneConfig.
Backbones поддерживаются для следующих моделей:
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
Переопределите post_init, чтобы всегда устанавливать хуки перехвата, так как backbone ВСЕГДА перехватывает выходные данные. Это необходимо сделать в post_init, поскольку модули должны быть уже созданы.
Это позволяет избежать некоторых проблем с torch.compile, так как первая установка хука потребует/создаст разрыв графа, что может конфликтовать с внешним вызовом пользователя, например model = torch.compile(model...).
BackboneConfigMixin
Миксин для поддержки обработки атрибутов out_features и out_indices в конфигурациях backbone.
set_output_features_output_indices
< source >( out_features: list | Noneout_indices: list | None )
Параметры
- out_features (
list[str], необязательный) — Имена признаков, которые должен выводить backbone. По умолчанию используетсяconfig._out_features, если значение не указано. - out_indices (
list[int]ortuple[int], необязательный) — Индексы признаков, которые должен выводить backbone. По умолчанию используетсяconfig._out_indices, если значение не указано.
Устанавливает выходные индексы и признаки в новые значения и выравнивает их с указанными stage_names.
Если один из входных параметров не задан, находит соответствующие out_features или out_indices для указанных stage_names.
Сериализует этот экземпляр в словарь Python. Переопределяет стандартный to_dict() из PreTrainedConfig, чтобы включить атрибуты out_features и out_indices.
Убедитесь, что out_indices и out_features допустимы для указанных stage_names.
TimmBackbone
Обёртка для моделей timm, используемых в качестве базовых моделей (backbone). Это позволяет использовать модели timm взаимозаменяемо с другими моделями в библиотеке, сохраняя тот же API.
TimmBackboneConfig
класс transformers.TimmBackboneConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone: str | None = Nonenum_channels: int = 3features_only: bool = True_out_indices: list[int] | None = Nonefreeze_batch_norm_2d: bool = Falseoutput_stride: int | None = None )
Параметры
- backbone (
str, необязательный) — Чекпоинт timm для загрузки. - num_channels (
int, необязательный, по умолчанию3) — Количество входных каналов. - features_only (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли выводить только признаки или также логиты. - freeze_batch_norm_2d (
bool, необязательный, по умолчаниюFalse) — Преобразует все слоиBatchNorm2dиSyncBatchNormпереданного модуля вFrozenBatchNorm2d. - output_stride (
int, необязательный) — Соотношение между пространственным разрешением входных и выходных карт признаков.
Это класс конфигурации для хранения настроек TimmBackbone. Он используется для создания модели Timm Backbone в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации
Объекты конфигурации наследуются от 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