Transformers documentation
العمود الفقري
العمود الفقري
تستخدم مهام الرؤية الحاسوبية الأعلى مستوى، مثل اكتشاف الكائنات أو تجزئة الصور، عدة نماذج معًا لتوليد تنبؤ. يُستخدم نموذج منفصل لكل من backbone والرقبة والرأس. يستخرج الـ backbone ميزات مفيدة من صورة الإدخال إلى خريطة ميزات، وتقوم الرقبة بدمج ومعالجة خرائط الميزات، بينما يستخدم الرأس هذه الميزات لإجراء تنبؤ.

حمّل العمود الفقري باستخدام from_pretrained() واستخدم معامل out_indices لتحديد الطبقة التي سيتم استخراج خريطة الميزات منها، وذلك بناءً على الفهرس المُعطى.
from transformers import AutoBackbone
model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))يصف هذا الدليل فئة العمود الفقري (backbone)، والأعمدة الفقرية من مكتبة timm، وكيفية استخراج الميزات باستخدامها.
فئات الهيكل
توجد فئتان أساسيتان.
~transformers.utils.BackboneMixinيتيح لك تحميل العمود الفقري (backbone) ويتضمن دوال لاستخراج خرائط الميزات والفهارس من الإعدادات.~transformers.utils.BackboneConfigMixinيتيح لك ضبط خريطة الميزات والفهارس وإتقانها والتحقق منها في إعداد العمود الفقري.
راجع توثيق واجهة Backbone للتحقق من النماذج التي تدعم العمود الفقري.
هناك طريقتان لتحميل هيكل Transformers الأساسي، وهما AutoBackbone وفئة هيكل مخصصة لنموذج معين.
تحمّل واجهة AutoClass تلقائيًا نموذج رؤية مُدرَّب مسبقًا كهيكل أساسي باستخدام from_pretrained() إذا كان مدعومًا.
اضبط معامل out_indices على الطبقة التي تريد الحصول على خريطة الميزات منها. إذا كنت تعرف اسم الطبقة، يمكنك أيضًا استخدام out_features. يمكن استخدام هذين المعاملين بالتبادل، ولكن إذا استخدمتَ كلاهما، فتأكد من أنهما يشيران إلى نفس الطبقة.
عند عدم استخدام out_indices أو out_features، تُرجع البنية التحتية خريطة الميزات من الطبقة الأخيرة. يستخدم كود المثال أدناه out_indices=(1,) للحصول على خريطة الميزات من الطبقة الأولى.

from transformers import AutoImageProcessor, AutoBackbone
model = AutoBackbone.from_pretrained("microsoft/swin-tiny-patch4-window7-224", out_indices=(1,))عندما تعلم أن نموذجًا ما يدعم هيكلًا أساسيًا (backbone)، يمكنك تحميل الهيكل الأساسي والجزء الأوسط (neck) مباشرةً في إعدادات النموذج. مرّر الإعدادات إلى النموذج لمهيئته لمهمة معينة.
يُحمّل المثال أدناه هيكلًا (backbone) وعنقًا (neck) من ResNet للاستخدام في رأس تقسيم الكائنات (instance segmentation) من MaskFormer.
لاحظ أن التهيئة من ملف الإعدادات ستُنشئ النموذج بأوزان عشوائية. إذا كنت ترغب في تحميل نموذج مُدرَّب مسبقًا، فاستخدم واجهة from_pretrained.
from transformers import AutoConfig, MaskFormerConfig, MaskFormerForInstanceSegmentation
backbone_config = AutoConfig.from_pretrained("microsoft/resnet-50")
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)خيار آخر هو تحميل إعدادات الهيكل الأساسي بشكل منفصل ثم تمريرها إلى backbone_config في إعدادات النموذج.
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
timm هو مجموعة من نماذج الرؤية للتدريب والاستدلال. يدعم Transformers نماذج timm كهيكل أساسي من خلال الفئات TimmBackbone وTimmBackboneConfig. اضبط نقطة التفتيش اللازمة للهيكل الأساسي في backbone لإنشاء نموذج بهيكل أساسي Timm بأوزان مهيأة عشوائيًا.
from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation, TimmBackboneConfig
backbone_config = TimmBackboneConfig(backbone="resnet50", out_indices=[-1])
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)يمكنك أيضًا استدعاء فئة TimmBackboneConfig صراحةً لتحميل وإنشاء هيكل عظمي (backbone) مُدرَّب مسبقًا من timm.
from transformers import TimmBackboneConfig
backbone_config = TimmBackboneConfig("resnet50")مرّر إعداد العمود الفقري إلى إعداد النموذج وأنشئ رأس النموذج، MaskFormerForInstanceSegmentation، باستخدام العمود الفقري.
from transformers import MaskFormerConfig, MaskFormerForInstanceSegmentation
config = MaskFormerConfig(backbone_config=backbone_config)
model = MaskFormerForInstanceSegmentation(config)استخراج الميزات
يُستخدم العمود الفقري لاستخراج ميزات الصورة. مرّر صورة عبر العمود الفقري للحصول على خرائط الميزات.
حمّل صورةً وقم بمعالجتها مسبقًا ثم مرّرها إلى العمود الفقري. يستخرج المثال أدناه خرائط الميزات من الطبقة الأولى.
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)تُخزَّن الميزات وتُستخدَم من خلال خاصية feature_maps في المخرجات.
feature_maps = outputs.feature_maps
list(feature_maps[0].shape)
[1, 96, 56, 56]