...

/

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

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

تعرف على كيفية استخدام شبكات 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 تتضمن هذه ...