Transformers documentation

Backbones

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Backbones

Tugas computer vision tingkat tinggi, seperti object detection atau image segmentation, menggunakan beberapa model secara bersama untuk menghasilkan prediksi. Model terpisah digunakan untuk backbone, neck, dan head. Backbone mengekstrak fitur yang berguna dari gambar input menjadi feature map, neck menggabungkan dan memproses feature map tersebut, dan head menggunakannya untuk membuat prediksi.

Muat backbone dengan from_pretrained() dan gunakan parameter out_indices untuk menentukan lapisan mana, yang diberikan oleh indeks, yang akan diekstrak peta fiturnya.

from transformers import AutoBackbone

model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))

Panduan ini menjelaskan kelas backbone, backbone dari pustaka timm, dan cara mengekstrak fitur dengan menggunakan backbone tersebut.

Kelas backbone

Ada dua kelas backbone.

  • ~transformers.utils.BackboneMixin memungkinkan Anda memuat backbone dan mencakup fungsi untuk mengekstrak feature maps dan indeks dari config.
  • ~transformers.utils.BackboneConfigMixin memungkinkan Anda untuk mengatur, menyelaraskan, dan memverifikasi peta fitur serta indeks dari konfigurasi backbone.

Lihat dokumentasi API Backbone untuk memeriksa model mana yang mendukung backbone.

Ada dua cara untuk memuat backbone Transformers, yaitu AutoBackbone dan kelas backbone yang spesifik untuk model tertentu.

AutoBackbone
backbone spesifik model

API AutoClass secara otomatis memuat model visi pralatih dengan from_pretrained() sebagai backbone jika didukung.

Atur parameter out_indices ke lapisan yang ingin Anda dapatkan peta fiturnya. Jika Anda mengetahui nama lapisannya, Anda juga bisa menggunakan out_features. Parameter-parameter ini dapat digunakan secara bergantian, tetapi jika Anda menggunakan keduanya, pastikan mereka merujuk ke lapisan yang sama.

Ketika out_indices atau out_features tidak digunakan, backbone mengembalikan feature map dari lapisan terakhir. Kode contoh di bawah menggunakan out_indices=(1,) untuk mendapatkan feature map dari lapisan pertama.

from transformers import AutoImageProcessor, AutoBackbone

model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))

backbone timm

timm adalah kumpulan model visi untuk pelatihan dan inferensi. Transformers mendukung model timm sebagai backbone dengan kelas TimmBackbone dan TimmBackboneConfig. Atur checkpoint backbone yang diperlukan di backbone untuk membuat model dengan backbone Timm yang bobotnya diinisialisasi secara acak.

from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation, TimmBackboneConfig

backbone_config = TimmBackboneConfig(backbone="resnet50", out_indices=[-1])
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)

Anda juga dapat secara eksplisit memanggil kelas TimmBackboneConfig untuk memuat dan membuat timm backbone yang telah dilatih sebelumnya.

from transformers import TimmBackboneConfig

backbone_config = TimmBackboneConfig("resnet50")

Lewatkan konfigurasi backbone ke konfigurasi model dan instansiasi kepala model, MaskFormerForInstanceSegmentation, dengan backbone.

from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation

config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)

Ekstraksi fitur

Backbone digunakan untuk mengekstrak fitur gambar. Lewatkan gambar melalui backbone untuk mendapatkan peta fitur.

Muat dan praproses sebuah gambar lalu teruskan ke backbone. Contoh di bawah mengekstrak peta fitur dari lapisan pertama.

from transformers import AutoImageProcessor, AutoBackbone
import torch
from PIL import Image
import requests

model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))
processor = AutoImageProcessor.from_pretrained("microsoft/swin-tiny-patch4-window7-224")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

inputs = processor(image, return_tensors="pt")
outputs = model(**inputs)

Fitur disimpan dan diakses dari atribut feature_maps pada output.

feature_maps = outputs.feature_maps
list(feature_maps[0].shape)
[1, 96, 56, 56]
Update on GitHub