Transformers documentation
Backbone
Backbone
Un backbone est un modèle utilisé pour l'extraction de caractéristiques pour des tâches de vision par ordinateur de plus haut niveau, telles que la détection d'objets et la classification d'images. Transformers fournit une classe AutoBackbone pour initialiser un backbone Transformers à partir de poids de modèle pré-entraînés, ainsi que deux classes utilitaires :
- BackboneMixin permet d’initialiser un backbone à partir de Transformers ou de timm et inclut des fonctions pour retourner les caractéristiques de sortie et les indices.
- BackboneConfigMixin définit les fonctionnalités de sortie et les indices de la configuration du backbone.
Les modèles timm sont chargés avec les classes TimmBackbone et TimmBackboneConfig.
Les backbones sont pris en charge pour les modèles suivants :
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
Écrasez post_init pour installer systématiquement les hooks de capture, car le backbone capturera TOUJOURS les sorties. Il faut le faire dans post_init, car les modules doivent déjà être instanciés.
Cela évite certains conflits avec torch.compile, car la première installation de hook nécessitera/créera une rupture de graphe, ce qui peut entrer en collision avec un appel utilisateur externe tel que model = torch.compile(model...).
BackboneConfigMixin
Un Mixin pour prendre en charge la gestion des attributs out_features et out_indices des configurations de backbone.
set_output_features_output_indices
< source >( out_features: list | Noneout_indices: list | None )
Paramètres
- out_features (
list[str], facultatif) — Les noms des fonctionnalités que le backbone doit produire. Par défaut,config._out_featuressi non fourni. - out_indices (
list[int]outuple[int], facultatif) — Les indices des fonctionnalités que le backbone doit retourner. Par défaut,config._out_indicessi non fourni.
Définit les indices et les fonctionnalités de sortie à de nouvelles valeurs et les aligne sur les stage_names donnés.
Si l'une des entrées n'est pas fournie, trouve les out_features ou out_indices correspondants pour les stage_names donnés.
Sérialise cette instance en dictionnaire Python. Remplace la méthode to_dict() par défaut de PreTrainedConfig pour inclure les attributs out_features et out_indices.
Vérifiez que out_indices et out_features sont valides pour les stage_names donnés.
TimmBackbone
Classe enveloppe pour les modèles timm destinés à être utilisés comme squelettes. Cela permet d’utiliser les modèles timm de manière interchangeable avec les autres modèles de la bibliothèque en conservant la même 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 )
Paramètres
- backbone (
str, facultatif) — Le point de contrôle timm à charger. - num_channels (
int, facultatif, par défaut3) — Le nombre de canaux d'entrée. - features_only (
bool, facultatif, par défautTrue) — Indique s'il faut n'afficher que les caractéristiques ou également les logits. - freeze_batch_norm_2d (
bool, facultatif, valeur par défautFalse) — Convertit toutes les couchesBatchNorm2detSyncBatchNormdu module fourni enFrozenBatchNorm2d. - output_stride (
int, facultatif) — Le ratio entre la résolution spatiale des cartes de caractéristiques d'entrée et de sortie.
Ceci est la classe de configuration destinée à stocker la configuration d'un TimmBackbone. Elle est utilisée pour instancier un modèle Timm Backbone en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> 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