Transformers documentation
HGNet-V2
Model ini disumbangkan ke Hugging Face Transformers pada 2025-04-29.
HGNet-V2
HGNetV2 adalah tulang punggung jaringan saraf konvolusional (CNN) generasi berikutnya yang dibangun untuk perbandingan akurasi-latensi optimal pada GPU NVIDIA. Berangkat dari HGNet asli, HGNetV2 menghadirkan akurasi tinggi dengan kecepatan inferensi yang cepat dan menunjukkan kinerja yang kuat pada tugas-tugas seperti klasifikasi gambar, deteksi objek, dan segmentasi, menjadikannya pilihan praktis untuk aplikasi visi komputer berbasis GPU.
Anda dapat menemukan semua model asli HGNet V2 di bawah organisasi USTC.
Model ini disumbangkan oleh VladOS95-cyber. Klik model HGNet V2 di bilah sisi kanan untuk melihat lebih banyak contoh penerapan HGNet V2 pada berbagai tugas computer vision.
Contoh di bawah ini menunjukkan cara mengklasifikasikan gambar dengan Pipeline atau kelas AutoModel.
from transformers import pipeline
pipeline = pipeline(
task="image-classification",
model="ustc-community/hgnet-v2",
device=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, HGNetV2ForImageClassification
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2", device_map="auto")
processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")
inputs = processor(images=image, return_tensors="pt").to(model.device)
with torch.no_grad():
logits = model(**inputs).logits
predicted_class_id = logits.argmax(dim=-1).item()
class_labels = model.config.id2label
predicted_class_label = class_labels[predicted_class_id]
print(f"The predicted class label is: {predicted_class_label}")HGNetV2Config
kelas transformers.HGNetV2Config
< 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 = Nonenum_channels: int = 3embedding_size: int = 64depths: list[int] | tuple[int, ...] = (3, 4, 6, 3)hidden_sizes: list[int] | tuple[int, ...] = (256, 512, 1024, 2048)hidden_act: str = 'relu'_out_features: list[str] | None = None_out_indices: list[int] | None = Nonestem_channels: list[int] | tuple[int, ...] = (3, 32, 48)stem_strides: Sequence = (2, 1, 1, 2, 1)stage_in_channels: list[int] | tuple[int, ...] = (48, 128, 512, 1024)stage_mid_channels: list[int] | tuple[int, ...] = (48, 96, 192, 384)stage_out_channels: list[int] | tuple[int, ...] = (128, 512, 1024, 2048)stage_num_blocks: list[int] | tuple[int, ...] = (1, 1, 3, 1)stage_downsample: list[bool] | tuple[bool, ...] = (False, True, True, True)stage_downsample_strides: Sequence = (2, 2, 2, 2)stage_light_block: list[bool] | tuple[bool, ...] = (False, False, True, True)stage_kernel_size: list[int] | tuple[int, ...] = (3, 3, 5, 5)stage_numb_of_layers: list[int] | tuple[int, ...] = (6, 6, 6, 6)use_learnable_affine_block: bool = Falseinitializer_range: float = 0.02 )
Parameter
- num_channels (
int, opsional, defaultnya3) — Jumlah saluran input. - embedding_size (
int, opsional, defaultnya64) — Dimensi dari embedding dan hidden states. - depths (
Union[list[int], tuple[int, ...]], opsional, default(3, 4, 6, 3)) — Kedalaman setiap layer dalam Transformer. - hidden_sizes (
Union[list[int], tuple[int, ...]], opsional, default(256, 512, 1024, 2048)) — Dimensi (hidden size) pada setiap tahap model. - hidden_act (
str, opsional, defaultnyarelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - stem_channels (
list[int], opsional, defaultnya[3, 32, 48]) — Dimensi channel untuk lapisan stem:- Angka pertama (3) adalah saluran gambar input
- Angka kedua (32) adalah kanal batang antara
- Angka ketiga (48) adalah kanal batang output
- stem_strides (
Sequence[int | list[int] | tuple[int, ...]], opsional, default(2, 1, 1, 2, 1)) — Pola stride untuk lapisan stem. - stage_in_channels (
list[int], opsional, default[48, 128, 512, 1024]) — Dimensi channel input untuk setiap stage dari backbone. Ini mendefinisikan berapa banyak channel yang akan dimiliki input untuk setiap stage. - stage_mid_channels (
list[int], opsional, default[48, 96, 192, 384]) — Dimensi mid-channel untuk setiap stage dari backbone. Ini mendefinisikan jumlah channel yang digunakan di lapisan intermediate dari setiap stage. - stage_out_channels (
list[int], opsional, default[128, 512, 1024, 2048]) — Dimensi kanal output untuk setiap stage dari backbone. Ini menentukan berapa banyak kanal yang akan dimiliki output dari setiap stage. - stage_num_blocks (
list[int], opsional, default[1, 1, 3, 1]) — Jumlah blok yang digunakan di setiap tahap backbone. Ini mengontrol kedalaman setiap tahap dengan menentukan berapa banyak blok konvolusional yang ditumpuk. - stage_downsample (
list[bool], opsional, default[False, True, True, True]) — Menunjukkan apakah peta fitur akan diturunkan samplanya (downsample) pada setiap tahap. JikaTrue, dimensi spasial dari peta fitur akan dikurangi. - stage_downsample_strides (
Sequence[int | list[int] | tuple[int, ...]], opsional, default(2, 2, 2, 2)) — Pola stride untuk setiap lapisan stage. - stage_light_block (
list[bool], opsional, defaultnya[False, False, True, True]) — Menunjukkan apakah akan menggunakan light block di setiap stage. Light block adalah varian dari blok konvolusional yang mungkin memiliki lebih sedikit parameter. - stage_kernel_size (
list[int], opsional, defaultnya[3, 3, 5, 5]) — Ukuran kernel untuk lapisan konvolusional di setiap tahap. - stage_numb_of_layers (
list[int], opsional, default[6, 6, 6, 6]) — Jumlah layer yang akan digunakan di setiap blok dari stage. - use_learnable_affine_block (
bool, opsional, defaultFalse) — Apakah akan menggunakan Learnable Affine Blocks (LAB) dalam jaringan. LAB menambahkan parameter skala dan bias yang dapat dipelajari setelah operasi tertentu. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari HGNetV2Backbone. Kelas ini digunakan untuk membuat model Hgnet V2 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari ustc-community/dfine_x_coco
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
HGNetV2Backbone
forward
< source >( pixel_values: Tensoroutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BackboneOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
BackboneOutput atau tuple(torch.Tensor)
BackboneOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (HGNetV2Config) dan input.
Metode forward dari HGNetV2Backbone 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.
feature_maps (
tuple(torch.Tensor)dengan bentuk(batch_size, num_channels, height, width)) — Feature maps dari setiap tahap.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk(batch_size, sequence_length, hidden_size)atau(batch_size, num_channels, height, width), tergantung pada backbone.Hidden-states model pada output setiap tahap ditambah output embedding awal.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length). Hanya berlaku jika backbone menggunakan attention.Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from transformers import HGNetV2Config, HGNetV2Backbone
>>> import torch
>>> config = HGNetV2Config()
>>> model = HGNetV2Backbone(config)
>>> pixel_values = torch.randn(1, 3, 224, 224)
>>> with torch.no_grad():
... outputs = model(pixel_values)
>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 2048, 7, 7]HGNetV2ForImageClassification
kelas transformers.HGNetV2ForImageClassification
< source >( config: HGNetV2Config )
Parameter
- config (HGNetV2Config) — 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 HGNetV2 dengan kepala klasifikasi gambar di atasnya (lapisan linear di atas fitur yang 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
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutputWithNoAttention or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk 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_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi 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.Tensor)
A ImageClassifierOutputWithNoAttention atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (HGNetV2Config) dan input.
Metode forward dari HGNetV2ForImageClassification 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.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1). - logits (
torch.Tensordengan bentuk(batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax). - hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(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:
>>> import torch
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import HGNetV2ForImageClassification, AutoImageProcessor
>>> from PIL import Image
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2")
>>> processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")
>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 2])