إنشاء تضمينات الصور والفيديو والصوت
تعرف على كيفية استخدام شبكات CNN لإنشاء تضمينات الصور والفيديو والصوت.
إنشاء تضمينات الصور
تحتوي مجموعة البيانات على صور لأنواع مختلفة من الأقلام والأرائك والأكواب والزجاج.
نموذج التضمين: شبكة CNN مدربة مسبقًا (ResNet-18)
لتضمين الصور، يستخدم الكود نموذج ResNet-18 مُدرَّبًا مسبقًا. ResNet (الشبكة المتبقية) هي بنية شبكة عصبية ملتوية عميقة، معروفة بفعاليتها في مهام تصنيف الصور. تتكون ResNet-18 من 18 طبقة، وقد أظهرت أداءً قويًا في مختلف معايير التعرف على الصور. نحصل على تمثيل للميزات أو تضمين للصورة إدخال بإزالة الطبقة النهائية المتصلة بالكامل. يلتقط هذا التضمين ميزات عالية المستوى للصورة، مما يسمح لنا بأداء مهام مثل مقارنة التشابه واسترجاع الصور.
نبدأ باستيراد المكتبات الضرورية.os يتم استيراده للتفاعل مع نظام الملفات،torch لوظائف التعلم العميق،torchvision.transforms لتحويلات الصور،torchvision.models للنماذج المدربة مسبقًا،PIL لمعالجة الصور، وcosine_similarity منsklearn.metrics.pairwise لحساب تشابه جيب التمام بين المتجهات.
نقوم بتحميل نموذج ResNet-18 المدرب مسبقًا باستخدامmodels.resnet18(pretrained=True) هذا النموذج عبارة عن بنية شبكة عصبية ملتوية، معروفة بفعاليتها في مهام تصنيف الصور. تُزال الطبقة الأخيرة المتصلة بالكامل من النموذج، ويُضبط على وضع التقييم.
ملاحظة: النموذج الذي نستخدمه لتوليد تضمينات الصور تم تدريبه مسبقًا على مهمة تصنيف الصور، لذلك نحتاج إلى إزالة طبقة التصنيف المتصلة بالكامل النهائية واستخراج ميزات الصورة من الطبقة المخفية الأخيرة.
نحن نحددpreprocess_image وظيفة تأخذ المسار إلى ملف الصورة إدخال وتنفذ سلسلة من التحويلات على الصورة باستخدامtransforms.Compose تتضمن هذه ...