Transformers documentation
Omurga Modelleri
Omurga Modelleri
Nesne tespiti veya görüntü segmentasyonu gibi üst düzey bilgisayarla görme görevleri, bir tahmin üretmek için birden fazla modeli birlikte kullanır. backbone, neck ve head için ayrı birer model kullanılır. Backbone, girdi görüntüsünden faydalı özellikleri çıkararak bir özellik haritası oluşturur; neck, özellik haritalarını birleştirir ve işler; head ise bunları kullanarak bir tahmin yapar.

Bir omurgayı from_pretrained() ile yükleyin ve out_indices parametresini kullanarak, indeksle belirtilen katmandan özellik haritası çıkarılacak katmanı belirleyin.
from transformers import AutoBackbone
model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))Bu kılavuz, omurga sınıfını, timm kütüphanesinden omurgaları ve bunlarla özellik çıkarma yöntemini açıklar.
Backbone sınıfları
İki omurga sınıfı vardır.
~transformers.utils.BackboneMixin, bir backbone yüklemenizi sağlar ve config'den özellik haritalarını ve indeksleri çıkarmak için işlevler içerir.~transformers.utils.BackboneConfigMixin, bir backbone yapılandırmasının özellik haritasını ve dizinlerini ayarlamanıza, hizalamanıza ve doğrulamanıza olanak tanır.
Hangi modellerin bir backbone desteklediğini kontrol etmek için Backbone API dokümantasyonuna başvurun.
Transformers omurgasını yüklemenin iki yolu vardır: AutoBackbone ve modele özgü omurga sınıfı.
AutoClass API, destekleniyorsa, önceden eğitilmiş bir görme modelini from_pretrained() ile bir omurga olarak otomatik yükler.
out_indices parametresini, özellik haritasını almak istediğiniz katmana ayarlayın. Katmanın adını biliyorsanız, out_features parametresini de kullanabilirsiniz. Bu parametreler birbirinin yerine kullanılabilir; ancak her ikisini birden kullanırsanız, aynı katmana atıfta bulunduklarından emin olun.
out_indices veya out_features kullanılmadığında, backbone son katmandan gelen özellik haritasını döndürür. Aşağıdaki örnek kod, ilk katmandan gelen özellik haritasını almak için out_indices=(1,) kullanır.

from transformers import AutoImageProcessor, AutoBackbone
model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))Bir modelin bir omurga (backbone) desteklediğini bildiğinizde, omurgayı ve boyunu (neck) doğrudan modelin yapılandırmasına yükleyebilirsiniz. Modeli bir görev için başlatmak üzere yapılandırmayı modele iletin.
Aşağıdaki örnek, MaskFormer örnek segmentasyonu başlığında kullanılmak üzere bir ResNet omurga ve boyun yükler.
Yapılandırmadan başlatmanın rastgele ağırlıklarla model oluşturacağını unutmayın. Ön eğitilmiş bir model yüklemek istiyorsanız from_pretrained API'sini kullanın.
from transformers import AutoConfig, MaskFormerConfig, MaskFormerForInstanceSegmentation
backbone_config = AutoConfig.from_pretrained("microsoft/resnet-50")
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)Bir diğer seçenek, omurga yapılandırmasını ayrı olarak yükleyip ardından model yapılandırmasındaki backbone_config parametresine iletmektir.
from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation, ResNetConfig
# instantiate backbone configuration
backbone_config = ResNetConfig()
# load backbone in model
config = MaskFormerConfig(backbone_config=backbone_config)
# attach backbone to model head
model = MaskFormerForInstanceSegmentation(config)timm omurgaları
timm, eğitim ve çıkarım için bir görme modeli koleksiyonudur. Transformers, TimmBackbone ve TimmBackboneConfig sınıflarıyla timm modellerini omurga (backbone) olarak destekler. Rastgele başlatılmış ağırlıklara sahip bir Timm omurgalı model oluşturmak için gerekli omurga kontrol noktasını backbone içinde ayarlayın.
from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation, TimmBackboneConfig
backbone_config = TimmBackboneConfig(backbone="resnet50", out_indices=[-1])
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)Ayrıca, önceden eğitilmiş bir timm backbone yüklemek ve oluşturmak için TimmBackboneConfig sınıfını açıkça çağırabilirsiniz.
from transformers import TimmBackboneConfig
backbone_config = TimmBackboneConfig("resnet50")Backbone yapılandırmasını model yapılandırmasına iletin ve model başını, MaskFormerForInstanceSegmentation, backbone ile örnekleyin.
from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)Özellik çıkarımı
Backbone, görüntü özelliklerini çıkarmak için kullanılır. Görüntüyü backbone üzerinden geçirerek özellik haritalarını elde edin.
Bir görüntüyü yükleyip ön işleme tabi tutun ve onu omurga mimarisine (backbone) iletin. Aşağıdaki örnek, ilk katmandan özellik haritalarını (feature maps) çıkarır.
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)Özellikler, feature_maps özniteliğindeki çıktılardan saklanır ve erişilir.
feature_maps = outputs.feature_maps
list(feature_maps[0].shape)
[1, 96, 56, 56]