Transformers documentation
TimmWrapper
TimmWrapper
Ikhtisar
Kelas bantu untuk memungkinkan model timm dimuat agar dapat digunakan dengan pustaka transformers dan autoclasses-nya.
from urllib.request import urlopen
import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForImageClassification
# Load image
image = Image.open(urlopen(
'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
# Load model and image processor
checkpoint = "timm/resnet50.a1_in1k"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForImageClassification.from_pretrained(checkpoint).eval( device_map="auto")
# Preprocess image
inputs = image_processor(image)
# Forward pass
with torch.no_grad():
logits = model(**inputs).logits
# Get top 5 predictions
top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)Sumber daya
Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan TimmWrapper.
Untuk ringkasan yang lebih detail, silakan baca artikel blog resmi tentang integrasi timm.
TimmWrapperConfig
kelas transformers.TimmWrapperConfig
< 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 = Nonearchitecture: str = 'resnet50'initializer_range: float = 0.02do_pooling: bool = Truemodel_args: dict[str, typing.Any] | None = None )
Parameter
- architecture (
str, opsional, default"resnet50") — Arsitektur timm yang akan dimuat. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - do_pooling (
bool, opsional, defaultTrue) — Apakah akan melakukan pooling untuk last_hidden_state diTimmWrapperModelatau tidak. - model_args (
dict[str, Any], opsional) — Argumen kata kunci tambahan untuk diteruskan ke fungsitimm.create_model. Misalnyamodel_args={"depth": 3}untuktimm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1kuntuk membuat model dengan 3 blok. Bawaan adalahNone.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari TimmWrapperModel. Kelas ini digunakan untuk membuat instans model Timm Wrapper sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai default akan menghasilkan konfigurasi yang serupa dengan resnet50
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
TimmWrapperImageProcessor
kelas transformers.TimmWrapperImageProcessor
< source >( pretrained_cfg: dictarchitecture: str | None = None**kwargs )
Kelas pembungkus untuk model timm yang digunakan di dalam transformers.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]return_tensors: str | transformers.utils.generic.TensorType | None = 'pt' )
Praproses sebuah gambar atau kumpulan gambar.
TimmWrapperModel
Kelas pembungkus untuk model timm yang akan digunakan di transformers.
forward
< source >( pixel_values: FloatTensoroutput_attentions: bool | None = Noneoutput_hidden_states: bool | list[int] | None = Nonereturn_dict: bool | None = Nonedo_pooling: bool | None = Noneuse_cache: bool | None = None**kwargs ) → TimmWrapperModelOutput or tuple(torch.FloatTensor)
Parameter
- pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan TimmWrapperImageProcessor. Lihat TimmWrapperImageProcessor.call() untuk detailnya (processor_classmenggunakan TimmWrapperImageProcessor untuk memproses gambar). - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Tidak kompatibel dengan model yang dibungkus timm. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Tidak kompatibel dengan model yang dibungkus timm. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa. - do_pooling (
bool, opsional) — Apakah akan melakukan pooling untuk last_hidden_state diTimmWrapperModelatau tidak. JikaNoneyang diberikan, nilaido_poolingdari config akan digunakan. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values).
Mengembalikan
TimmWrapperModelOutput atau tuple(torch.FloatTensor)
TimmWrapperModelOutput atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (TimmWrapperConfig) dan input.
Metode forward dari TimmWrapperModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- last_hidden_state (
torch.FloatTensor) — State tersembunyi terakhir dari model, yang dihasilkan sebelum menerapkan kepala klasifikasi. - pooler_output (
torch.FloatTensor, opsional) — Output hasil pooling yang diturunkan dari hidden state terakhir, jika berlaku. - hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan jikaoutput_hidden_states=Truedisetel atau jikaconfig.output_hidden_states=True) — Tuple yang berisi hidden states antara dari model pada output setiap layer atau layer yang ditentukan. - attentions (
tuple(torch.FloatTensor), opsional, dikembalikan jikaoutput_attentions=Truedisetel atau jikaconfig.output_attentions=True.) — Tuple yang berisi bobot perhatian antara dari model pada keluaran setiap lapisan. Catatan: Saat ini, model Timm tidak mendukung keluaran attentions.
Contoh:
>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModel, AutoImageProcessor
>>> # Load image
>>> image = Image.open(urlopen(
... 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))
>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModel.from_pretrained(checkpoint).eval()
>>> # Preprocess image
>>> inputs = image_processor(image)
>>> # Forward pass
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # Get pooled output
>>> pooled_output = outputs.pooler_output
>>> # Get last hidden state
>>> last_hidden_state = outputs.last_hidden_stateTimmWrapperForImageClassification
Kelas pembungkus untuk model timm yang digunakan di transformers untuk klasifikasi gambar.
forward
< source >( pixel_values: FloatTensorlabels: typing.Optional[torch.LongTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | list[int] | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutput or tuple(torch.FloatTensor)
Parameter
- pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan TimmWrapperImageProcessor. Lihat TimmWrapperImageProcessor.call() untuk detailnya (processor_classmenggunakan TimmWrapperImageProcessor untuk memproses gambar). - labels (
torch.LongTensordengan bentuk(batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi gambar. Indeks harus berada dalam[0, ..., config.num_labels - 1]. Jikaconfig.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jikaconfig.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy). - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Tidak kompatibel dengan model yang dibungkus timm. - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Tidak kompatibel dengan model yang dibungkus timm. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa. **kwargs: Argumen kata kunci tambahan yang diteruskan ke forward modeltimm.
Mengembalikan
ImageClassifierOutput atau tuple(torch.FloatTensor)
Sebuah ImageClassifierOutput atau tuple dari
torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (TimmWrapperConfig) dan input.
Metode forward dari TimmWrapperForImageClassification menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).logits (
torch.FloatTensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).hidden_states (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.FloatTensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari model pada output dari setiap tahap.attentions (
tuple(torch.FloatTensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.FloatTensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, patch_size, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModelForImageClassification, AutoImageProcessor
>>> # Load image
>>> image = Image.open(urlopen(
... 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))
>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModelForImageClassification.from_pretrained(checkpoint).eval()
>>> # Preprocess image
>>> inputs = image_processor(image)
>>> # Forward pass
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> # Get top 5 predictions
>>> top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)