إنشاء تضمينات الصور والفيديو والصوت
تعرف على كيفية استخدام شبكات CNN لإنشاء تضمينات الصور والفيديو والصوت.
سنغطي ما يلي...
إنشاء تضمينات الصور
تحتوي مجموعة البيانات على صور لأنواع مختلفة من الأقلام والأرائك والأكواب والزجاج.
نموذج التضمين: شبكة CNN مدربة مسبقًا (ResNet-18)
لتضمين الصور، يستخدم الكود نموذج ResNet-18 مُدرَّبًا مسبقًا. ResNet (الشبكة المتبقية) هي بنية شبكة عصبية ملتوية عميقة، معروفة بفعاليتها في مهام تصنيف الصور. تتكون ResNet-18 من 18 طبقة، وقد أظهرت أداءً قويًا في مختلف معايير التعرف على الصور. نحصل على تمثيل للميزات أو تضمين للصورة إدخال بإزالة الطبقة النهائية المتصلة بالكامل. يلتقط هذا التضمين ميزات عالية المستوى للصورة، مما يسمح لنا بأداء مهام مثل مقارنة التشابه واسترجاع الصور.
نبدأ باستيراد المكتبات الضرورية.os
يتم استيراده للتفاعل مع نظام الملفات،torch
لوظائف التعلم العميق،torchvision.transforms
لتحويلات الصور،torchvision.models
للنماذج المدربة مسبقًا،PIL
لمعالجة الصور، وcosine_similarity
منsklearn.metrics.pairwise
لحساب تشابه جيب التمام بين المتجهات.
import osimport torchimport torchvision.transforms as transformsimport torchvision.models as modelsfrom PIL import Imagefrom sklearn.metrics.pairwise import cosine_similarity
نقوم بتحميل نموذج ResNet-18 المدرب مسبقًا باستخدامmodels.resnet18(pretrained=True)
هذا النموذج عبارة عن بنية شبكة عصبية ملتوية، معروفة بفعاليتها في مهام تصنيف الصور. تُزال الطبقة الأخيرة المتصلة بالكامل من النموذج، ويُضبط على وضع التقييم.
ملاحظة: النموذج الذي نستخدمه لتوليد تضمينات الصور تم تدريبه مسبقًا على مهمة تصنيف الصور، لذلك نحتاج إلى إزالة طبقة التصنيف المتصلة بالكامل النهائية واستخراج ميزات الصورة من الطبقة المخفية الأخيرة.
# Load pretrained ResNet modelresnet_model = models.resnet18(pretrained=True)# Remove the final fully connected layerresnet_model = torch.nn.Sequential(*(list(resnet_model.children())[:-1]))# Set the model to evaluation moderesnet_model.eval()
نحن نحددpreprocess_image
وظيفة تأخذ المسار إلى ملف الصورة إدخال وتنفذ سلسلة من التحويلات على الصورة باستخدامtransforms.Compose
تتضمن هذه ...