شياوبو وانغ*، شو وانغ*، تشينغ تشي، شيفنغ تشانغ، تاو مي
هذا هو التنفيذ الرسمي لوظيفة فقدان البحث للتعرف على الوجوه. تم قبوله من قبل ICML 2020.
في التعرف على الوجوه، يلعب تصميم وظائف فقدان softmax المستندة إلى الهامش (على سبيل المثال، الهوامش الزاويّة والمضافة والزاويّة المضافة) دورًا مهمًا في تعلم الميزات التمييزية. ومع ذلك، فإن هذه الأساليب الإرشادية المصنوعة يدويًا ليست مثالية لأنها تتطلب الكثير من الجهد لاستكشاف مساحة التصميم الكبيرة. قمنا أولاً بتحليل أن المفتاح لتعزيز تمييز الميزات هو في الواقع كيفية تقليل احتمالية softmax . نقوم بعد ذلك بتصميم صيغة موحدة لخسائر softmax الحالية القائمة على الهامش. وبناءً على ذلك، قمنا بتحديد مساحة بحث جديدة وتطوير طريقة بحث موجهة بالمكافأة للحصول تلقائيًا على أفضل مرشح. أظهرت النتائج التجريبية لمجموعة متنوعة من معايير التعرف على الوجوه فعالية طريقتنا مقارنة بالبدائل الحديثة.
للتحقق من فعالية مساحة البحث لدينا، يمكن للمرء ببساطة اختيار Random-softmax. في Train.sh، يمكنك تعيين do_search=1. إذا استخدمنا softmax العشوائي لتدريب شبكتنا، فسنحصل على النتيجة أدناه.
مطلوب Pytorch 1.1 أو أعلى.
في التنفيذ الحالي، نستخدم lmdb لحزم صورنا التدريبية. تنسيق lmdb الخاص بنا يأتي بشكل أساسي من Caffe. ويمكنك كتابة ملف caffe.proto الخاص بك على النحو التالي:
syntax = "proto2";
message Datum {
//the acutal image data, in bytes.
optional bytes data=1;
}
وبصرف النظر عن lmdb، يجب أن يكون هناك ملف نصي يصف ملف lmdb. يحتوي كل سطر من الملف النصي على حقلين مفصولين بمسافة. السطر الموجود في الملف النصي هو كما يلي:
lmdb_key label
./train.sh
يمكنك إما استخدام ./train.sh. لاحظ أنه قبل تنفيذ Train.sh، يجب عليك توفير ملف Train_source_lmdb وtrain_source_file الخاصين بك. لمزيد من الاستخدام من فضلك
python main . py - h