Transformers documentation
Backbone
Backbone
Uma backbone é um modelo usado para extração de recursos para tarefas de visão computacional de alto nível, como detecção de objetos e classificação de imagens. O Transformers fornece uma classe AutoBackbone para inicializar uma backbone do Transformers a partir de pesos de modelo pré-treinados, e duas classes utilitárias:
- O BackboneMixin permite inicializar um backbone a partir do Transformers ou do timm e inclui funções para retornar os recursos de saída e os índices.
- BackboneConfigMixin define os recursos de saída e os índices da configuração do backbone.
Os modelos timm são carregados com as classes TimmBackbone e TimmBackboneConfig.
Os backbones são suportados para os seguintes modelos:
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
Sobrescreva post_init para sempre instalar os hooks de captura, pois o backbone SEMPRE capturará as saídas. Precisamos fazer isso em post_init, pois os módulos precisam já ter sido instanciados.
Isso evita alguns conflitos com torch.compile, pois a primeira instalação de hook precisará/criará uma quebra de grafo, o que pode conflitar com chamadas externas do usuário, como model = torch.compile(model...).
BackboneConfigMixin
Mixin para suportar o tratamento dos atributos out_features e out_indices nas configurações do backbone.
set_output_features_output_indices
< source >( out_features: list | Noneout_indices: list | None )
Parâmetros
- out_features (
list[str], opcional) — Os nomes dos recursos que o backbone deve produzir como saída. O padrão éconfig._out_features, caso não seja fornecido. - out_indices (
list[int]outuple[int], opcional) — Os índices dos recursos para o backbone produzir como saída. O padrão éconfig._out_indices, caso não seja fornecido.
Define os índices e recursos de saída para novos valores e os alinha com os stage_names fornecidos.
Se uma das entradas não for fornecida, encontra o out_features ou out_indices correspondente para os stage_names fornecidos.
Serializa esta instância em um dicionário Python. Sobrescreve o to_dict() padrão de PreTrainedConfig para incluir os atributos out_features e out_indices.
Verifique se out_indices e out_features são válidos para os stage_names fornecidos.
TimmBackbone
Classe de encapsulamento para modelos do timm a serem usados como backbones. Isso permite usar os modelos do timm de forma intercambiável com os outros modelos da biblioteca, mantendo a mesma API.
TimmBackboneConfig
classe 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 )
Parâmetros
- backbone (
str, opcional) — O checkpoint do timm a ser carregado. - num_channels (
int, opcional, padrão3) — O número de canais de entrada. - features_only (
bool, opcional, padrãoTrue) — Se deve exibir apenas os recursos ou também os logits. - freeze_batch_norm_2d (
bool, opcional, padrãoFalse) — Converte todas as camadasBatchNorm2deSyncBatchNormdo módulo fornecido emFrozenBatchNorm2d. - output_stride (
int, opcional) — A proporção entre a resolução espacial dos mapas de características de entrada e de saída.
Esta é a classe de configuração para armazenar a configuração de um TimmBackbone. Ela é usada para instanciar um modelo Timm Backbone de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
Exemplo:
>>> 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