Transformers documentation
Backbone
Backbone
Backbone là một mô hình được sử dụng để trích xuất đặc trưng cho các tác vụ thị giác máy tính cấp cao hơn như phát hiện đối tượng và phân loại ảnh. Transformers cung cấp lớp AutoBackbone để khởi tạo một backbone của Transformers từ trọng số mô hình được huấn luyện trước, cùng hai lớp tiện ích:
- BackboneMixin cho phép khởi tạo một backbone từ Transformers hoặc timm và bao gồm các hàm để trả về các đặc trưng đầu ra và các chỉ số.
- BackboneConfigMixin thiết lập các đặc trưng đầu ra và chỉ số của cấu hình backbone.
Các mô hình timm được nạp bằng các lớp TimmBackbone và TimmBackboneConfig.
Backbones được hỗ trợ cho các mô hình sau:
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
Ghi đè post_init để luôn cài đặt các hook bắt (capturing), vì backbone sẽ LUÔN bắt các đầu ra. Chúng ta cần thực hiện điều này trong post_init, vì các module cần phải đã được khởi tạo.
Điều này tránh được một số nhầm lẫn với torch.compile, vì việc cài đặt hook đầu tiên sẽ cần/tạo ra một điểm ngắt đồ thị (graph break),
điều này có thể xung đột với các lời gọi từ người dùng bên ngoài như model = torch.compile(model...).
BackboneConfigMixin
Một Mixin để hỗ trợ xử lý các thuộc tính out_features và out_indices cho các cấu hình backbone.
set_output_features_output_indices
< source >( out_features: list | Noneout_indices: list | None )
Tham số
Đặt các chỉ số và đặc trưng đầu ra thành các giá trị mới và căn chỉnh chúng với stage_names đã cho.
Nếu một trong các đầu vào không được cung cấp, tìm out_features hoặc out_indices tương ứng cho stage_names đã cho.
Chuẩn hóa bản thể này thành một từ điển Python. Ghi đè to_dict() mặc định từ PreTrainedConfig để bao gồm các thuộc tính out_features và out_indices.
Kiểm tra xem out_indices và out_features có hợp lệ cho stage_names đã cho hay không.
TimmBackbone
Lớp wrapper cho các mô hình timm để sử dụng làm backbone. Điều này cho phép sử dụng các mô hình timm thay thế cho các mô hình khác trong thư viện trong khi vẫn giữ nguyên API.
TimmBackboneConfig
lớp 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 )
Tham số
- backbone (
str, tùy chọn) — Checkpoint timm cần tải. - num_channels (
int, tùy chọn, mặc định là3) — Số lượng kênh đầu vào. - features_only (
bool, tùy chọn, mặc định làTrue) — Có chỉ xuất ra các đặc trưng hay cả logits hay không. - freeze_batch_norm_2d (
bool, tùy chọn, mặc định làFalse) — Chuyển đổi tất cả các lớpBatchNorm2dvàSyncBatchNormcủa module được cung cấp thànhFrozenBatchNorm2d. - output_stride (
int, tùy chọn) — Tỷ lệ giữa độ phân giải không gian của bản đồ đặc trưng đầu vào và đầu ra.
Đây là lớp cấu hình để lưu trữ cấu hình của một TimmBackbone. Nó được sử dụng để khởi tạo một mô hình Timm Backbone theo các đối số được chỉ định, xác định kiến trúc mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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