Transformers documentation

RegNet

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

Bu model 2020-03-30 tarihinde HF papers'ta yayımlanmış ve 2022-04-07 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.

RegNet

Genel Bakış

RegNet modeli, Ilija Radosavovic, Raj Prateek Kosaraju, Ross Girshick, Kaiming He ve Piotr Dollár tarafından Designing Network Design Spaces makalesinde önerilmiştir.

Yazarlar, Sinirsel Mimari Arama (NAS) gerçekleştirmek için arama uzayları tasarlar. Önce yüksek boyutlu bir arama uzayından başlar ve mevcut arama uzayı tarafından örneklenen en iyi performans gösteren modellere dayalı olarak kısıtlamaları deneysel olarak uygulayarak arama uzayını iteratif olarak daraltır.

Makalenin özeti aşağıdaki gibidir:

Bu çalışmada, yeni bir ağ tasarım paradigması sunuyoruz. Amacımız, ağ tasarımına ilişkin anlayışı ilerletmek ve farklı ortamlarda geçerli olan tasarım ilkelerini keşfetmektir. Bireysel ağ örnekleri tasarlamaya odaklanmak yerine, ağ popülasyonlarını parametreleştiren ağ tasarım uzayları tasarlıyoruz. Genel süreç, ağların klasik manuel tasarımına benzer; ancak bu süreç tasarım uzayı düzeyine taşınmıştır. Metodolojimizi kullanarak ağ tasarımının yapısal boyutunu inceliyor ve RegNet olarak adlandırdığımız basit, düzenli ağlardan oluşan düşük boyutlu bir tasarım uzayına ulaşıyoruz. RegNet parametreleştirmesinin temel içgörüsü şaşırtıcı derecede basittir: iyi ağların genişlikleri ve derinlikleri, kuantize edilmiş doğrusal bir fonksiyonla açıklanabilir. RegNet tasarım uzayını analiz ediyoruz ve mevcut ağ tasarım uygulamalarıyla örtüşmeyen ilginç bulgulara ulaşıyoruz. RegNet tasarım uzayı, geniş bir flop aralığında iyi performans gösteren basit ve hızlı ağlar sunar. Karşılaştırılabilir eğitim koşulları ve flop değerlerinde, RegNet modelleri popüler EfficientNet modellerini geride bırakırken GPU'larda 5 kata kadar daha hızlı çalışır.

Bu model Francesco tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.

Self-supervised Pretraining of Visual Features in the Wild makalesindeki devasa 10B parametreli model, bir milyar Instagram görseli üzerinde eğitilmiştir ve hub'da kullanılabilir.

Kaynaklar

RegNet ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının listesi.

Image Classification

Buraya bir kaynak eklemek isterseniz, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynağın, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şeyi göstermesi beklenir.

RegNetConfig

sınıf transformers.RegNetConfig

< >

( 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 = 32hidden_sizes: list[int] | tuple[int, ...] = (128, 192, 512, 1088)depths: list[int] | tuple[int, ...] = (2, 6, 12, 2)groups_width: int = 64layer_type: str = 'y'hidden_act: str = 'relu'downsample_in_first_stage: bool = True )

Parametreler

  • num_channels (int, isteğe bağlı, varsayılan 3) — Giriş kanal sayısı.
  • embedding_size (int, isteğe bağlı, varsayılan 32) — Gömme ve gizli durumların boyutluluğu.
  • hidden_sizes (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (128, 192, 512, 1088)) — Modelin her aşamasındaki boyut (gizli boyut).
  • depths (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (2, 6, 12, 2)) — Transformer'daki her katmanın derinliği.
  • groups_width (int, isteğe bağlı, varsayılan 64) — Her aşama için grup genişliği.
  • layer_type (str, optional, defaults to "y") — The layer to use, it can be either "x" or “y”. An xlayer is a ResNet's BottleNeck layer withreductionfixed to1. While a ylayer is ax` but with squeeze and excitation. Please refer to the paper for a detailed explanation of how these layers were constructed.
  • hidden_act (str, isteğe bağlı, varsayılan relu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • downsample_in_first_stage (bool, isteğe bağlı, varsayılan False) — True ise, ilk aşama girdileri 2 stride kullanarak küçültür.

Bu, bir RegNetModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Regnet modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, facebook/regnet-y-040 ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

>>> from transformers import RegNetConfig, RegNetModel

>>> # Initializing a RegNet regnet-y-40 style configuration
>>> configuration = RegNetConfig()
>>> # Initializing a model from the regnet-y-40 style configuration
>>> model = RegNetModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

RegNetModel

sınıf transformers.RegNetModel

< >

( config: RegNetConfig )

Parametreler

  • config (RegNetConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Regnet Modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri ConvNextImageProcessor kullanılarak elde edilebilir. Ayrıntılar için ConvNextImageProcessor.call() adresine bakın (processor_class, görüntü işleme için ConvNextImageProcessor kullanır).
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

BaseModelOutputWithPoolingAndNoAttention veya tuple(torch.Tensor)

BaseModelOutputWithPoolingAndNoAttention veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (RegNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

RegNetModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, num_channels, height, width)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • pooler_output (torch.Tensor, şekli (batch_size, hidden_size)) — Uzamsal boyutlar üzerinde bir havuzlama işleminden sonra son katman gizli durumu.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, num_channels, height, width) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

Örnek:

RegNetForImageClassification

sınıf transformers.RegNetForImageClassification

< >

( config: RegNetConfig )

Parametreler

  • config (RegNetConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üstünde bir görüntü sınıflandırma başlığı (toplanmış özelliklerin üzerinde doğrusal bir katman) bulunan RegNet Modeli, örneğin ImageNet için.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( 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)

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri ConvNextImageProcessor kullanılarak elde edilebilir. Ayrıntılar için ConvNextImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için ConvNextImageProcessor kullanır).
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Görüntü sınıflandırma/geri dönüşüm kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır. config.num_labels > 1 ise bir sınıflandırma kaybı (Cross-Entropy) hesaplanır.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

ImageClassifierOutputWithNoAttention veya tuple(torch.Tensor)

A ImageClassifierOutputWithNoAttention veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (RegNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

RegNetForImageClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.
  • logits (torch.Tensor, şekli (batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her aşamanın çıktısı için birer tane) içeren bir tuple, şekli (batch_size, num_channels, height, width). Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).

Örnek:

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

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

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/regnet-y-040")
>>> model = RegNetForImageClassification.from_pretrained("facebook/regnet-y-040")

>>> 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