...

/

إنشاء تضمينات الصور والفيديو والصوت

إنشاء تضمينات الصور والفيديو والصوت

تعرف على كيفية استخدام شبكات CNN لإنشاء تضمينات الصور والفيديو والصوت.

سنغطي ما يلي...

إنشاء تضمينات الصور

تحتوي مجموعة البيانات على صور لأنواع مختلفة من الأقلام والأرائك والأكواب والزجاج.

نموذج التضمين: شبكة CNN مدربة مسبقًا (ResNet-18)

لتضمين الصور، يستخدم الكود نموذج ResNet-18 مُدرَّبًا مسبقًا. ResNet (الشبكة المتبقية) هي بنية شبكة عصبية ملتوية عميقة، معروفة بفعاليتها في مهام تصنيف الصور. تتكون ResNet-18 من 18 طبقة، وقد أظهرت أداءً قويًا في مختلف معايير التعرف على الصور. نحصل على تمثيل للميزات أو تضمين للصورة إدخال بإزالة الطبقة النهائية المتصلة بالكامل. يلتقط هذا التضمين ميزات عالية المستوى للصورة، مما يسمح لنا بأداء مهام مثل مقارنة التشابه واسترجاع الصور.

نبدأ باستيراد المكتبات الضرورية. يتم استيراد os للتفاعل مع نظام الملفات، torch لوظائف التعلم العميق، و torchvision.transforms لتحويلات الصور، و torchvision.models للنماذج المدربة مسبقًا، و PIL لمعالجة الصور، و cosine_similarity من sklearn.metrics.pairwise لحساب تشابه جيب التمام بين المتجهات.

Press + to interact
import os
import torch
import torchvision.transforms as transforms
import torchvision.models as models
from PIL import Image
from sklearn.metrics.pairwise import cosine_similarity

نُحمّل نموذج ResNet-18 مُدرّب مسبقًا باستخدام models.resnet18(pretrained=True) . هذا النموذج عبارة عن بنية شبكة عصبية ملتوية معروفة بفعاليتها في مهام تصنيف الصور. تُزال الطبقة الأخيرة المتصلة بالكامل من النموذج، ويُضبط على وضع التقييم.

ملاحظة: النموذج الذي نستخدمه لتوليد تضمينات الصور تم تدريبه مسبقًا على مهمة تصنيف الصور، لذلك نحتاج إلى إزالة طبقة التصنيف المتصلة بالكامل النهائية واستخراج ميزات الصورة من الطبقة المخفية الأخيرة.

Press + to interact
# Load pretrained ResNet model
resnet_model = models.resnet18(pretrained=True)
# Remove the final fully connected layer
resnet_model = torch.nn.Sequential(*(list(resnet_model.children())[:-1]))
# Set the model to evaluation mode
resnet_model.eval()

نُعرّف دالة preprocess_image ، التي تأخذ مسار ملف الصورة إدخال وتُجري سلسلة من التحويلات على الصورة باستخدام transforms.Compose . تتضمن هذه التحويلات تغيير حجم الصورة إلى 256 ...