Transformers documentation

ResNet

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

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2015-12-10 dan disumbangkan ke Hugging Face Transformers pada 2022-03-14.

ResNet

Ikhtisar

Model ResNet diusulkan dalam Deep Residual Learning for Image Recognition oleh Kaiming He, Xiangyu Zhang, Shaoqing Ren, dan Jian Sun. Implementasi kami mengikuti perubahan kecil yang dilakukan oleh Nvidia, yaitu menerapkan stride=2 untuk downsampling pada conv 3x3 di bottleneck, bukan pada 1x1 pertama. Hal ini secara umum dikenal sebagai “ResNet v1.5”.

ResNet memperkenalkan koneksi residual, yang memungkinkan pelatihan jaringan dengan jumlah lapisan yang belum pernah terlihat sebelumnya (hingga 1000). ResNet memenangkan kompetisi ILSVRC & COCO 2015, sebuah tonggak penting dalam visi komputer mendalam.

Abstrak dari makalah tersebut adalah sebagai berikut:

Jaringan saraf yang lebih dalam lebih sulit untuk dilatih. Kami menyajikan kerangka pembelajaran residual untuk memperlancar pelatihan jaringan yang jauh lebih dalam daripada yang digunakan sebelumnya. Kami merumuskan ulang lapisan secara eksplisit sebagai pembelajaran fungsi residual dengan merujuk pada input lapisan, alih-alih mempelajari fungsi yang tidak merujuk. Kami menyediakan bukti empiris yang komprehensif yang menunjukkan bahwa jaringan residual ini lebih mudah dioptimalkan, dan dapat meningkatkan akurasi dari kedalaman yang meningkat secara signifikan. Pada dataset ImageNet, kami mengevaluasi jaringan residual dengan kedalaman hingga 152 lapisan---8 kali lebih dalam daripada jaringan VGG tetapi masih memiliki kompleksitas yang lebih rendah. Ensemble dari jaringan residual ini mencapai error 3,57% pada set pengujian ImageNet. Hasil ini memenangkan tempat ke-1 pada tugas klasifikasi ILSVRC 2015. Kami juga menyajikan analisis pada CIFAR-10 dengan 100 dan 1000 lapisan. Kedalaman representasi sangat penting untuk banyak tugas pengenalan visual. Hanya berkat representasi yang sangat dalam, kami memperoleh peningkatan relatif 28% pada dataset deteksi objek COCO. Jaringan residual dalam adalah fondasi dari submission kami pada kompetisi ILSVRC & COCO 2015, di mana kami juga memenangkan tempat ke-1 pada tugas deteksi ImageNet, lokalisasi ImageNet, deteksi COCO, dan segmentasi COCO.

Gambar di bawah ini mengilustrasikan arsitektur ResNet. Diambil dari paper asli.

Model ini disumbangkan oleh Francesco. Kode aslinya dapat ditemukan di sini.

Sumber daya

Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan ResNet.

Image Classification

Jika Anda tertarik untuk mengirimkan sumber daya agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya! Sumber daya tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber daya yang sudah ada.

ResNetConfig

kelas transformers.ResNetConfig

< >

( 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 = Nonenum_channels: int = 3embedding_size: int = 64hidden_sizes: list[int] | tuple[int, ...] | None = (256, 512, 1024, 2048)depths: list[int] | tuple[int, ...] | None = (3, 4, 6, 3)layer_type: str = 'bottleneck'hidden_act: str = 'relu'downsample_in_first_stage: bool = Falsedownsample_in_bottleneck: bool = False )

Parameter

  • num_channels (int, opsional, defaultnya 3) — Jumlah saluran input.
  • embedding_size (int, opsional, defaultnya 64) — Dimensi dari embedding dan hidden states.
  • hidden_sizes (Union[list[int], tuple[int, ...]], opsional, default (256, 512, 1024, 2048)) — Dimensi (hidden size) pada setiap tahap model.
  • depths (Union[list[int], tuple[int, ...]], opsional, default (3, 4, 6, 3)) — Kedalaman setiap layer dalam Transformer.
  • layer_type (str, opsional, default "bottleneck") — Lapisan yang akan digunakan, bisa berupa "basic" (dipakai untuk model yang lebih kecil, seperti resnet-18 atau resnet-34) atau "bottleneck" (dipakai untuk model yang lebih besar seperti resnet-50 ke atas).
  • hidden_act (str, opsional, defaultnya relu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • downsample_in_first_stage (bool, opsional, default False) — Jika True, tahap pertama akan melakukan downsample pada input menggunakan stride sebesar 2.
  • downsample_in_bottleneck (bool, opsional, default False) — Jika True, conv 1x1 pertama di ResNetBottleNeckLayer akan melakukan downsampling pada input menggunakan stride sebesar 2.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari ResNetModel. Kelas ini digunakan untuk membuat instans model Resnet berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari microsoft/resnet-50

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

>>> from transformers import ResNetConfig, ResNetModel

>>> # Initializing a ResNet resnet-50 style configuration
>>> configuration = ResNetConfig()

>>> # Initializing a model (with random weights) from the resnet-50 style configuration
>>> model = ResNetModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

validate_layer_type

< >

( )

Periksa bahwa layer_types didefinisikan dengan benar.

ResNetModel

kelas transformers.ResNetModel

< >

( config: ResNetConfig )

Parameter

  • config (ResNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Resnet polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensoroutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPoolingAndNoAttention or tuple(torch.FloatTensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan ConvNextImageProcessor. Lihat ConvNextImageProcessor.call() untuk detailnya (processor_class menggunakan ConvNextImageProcessor untuk memproses gambar).
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

BaseModelOutputWithPoolingAndNoAttention atau tuple(torch.FloatTensor)

BaseModelOutputWithPoolingAndNoAttention atau tuple dari torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (ResNetConfig) dan input.

Metode forward dari ResNetModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya 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 dengan bentuk (batch_size, num_channels, height, width)) — Urutan hidden-state pada keluaran lapisan terakhir model.

  • pooler_output (torch.FloatTensor dengan bentuk (batch_size, hidden_size)) — Hidden-state lapisan terakhir setelah operasi pooling pada dimensi spasial.

  • hidden_states (tuple(torch.FloatTensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.FloatTensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, num_channels, height, width).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

Contoh:

ResNetForImageClassification

kelas transformers.ResNetForImageClassification

< >

( config: ResNetConfig )

Parameter

  • config (ResNetConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model ResNet dengan kepala klasifikasi gambar di atasnya (lapisan linear di atas fitur yang telah dipooling), misalnya untuk ImageNet.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutputWithNoAttention or tuple(torch.FloatTensor)

Parameter

  • pixel_values (torch.FloatTensor dengan bentuk (batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan ConvNextImageProcessor. Lihat ConvNextImageProcessor.call() untuk detailnya (processor_class menggunakan ConvNextImageProcessor untuk memproses gambar).
  • labels (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi gambar. Indeks harus berada dalam [0, ..., config.num_labels - 1]. Jika config.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy).
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

ImageClassifierOutputWithNoAttention atau tuple(torch.FloatTensor)

A ImageClassifierOutputWithNoAttention atau tuple dari torch.FloatTensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (ResNetConfig) dan input.

Metode forward dari ResNetForImageClassification menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.FloatTensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).
  • logits (torch.FloatTensor dengan bentuk (batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).
  • hidden_states (tuple(torch.FloatTensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.FloatTensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pada output setiap tahap.

Contoh:

>>> from transformers import AutoImageProcessor, ResNetForImageClassification
>>> import torch
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = ResNetForImageClassification.from_pretrained("microsoft/resnet-50")

>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...
Update on GitHub