عامر ابراهيم نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 لدي نموذج مدرب مسبقاً وأحاول تعديله لاستخدامه في مهمة أخرى (نقل تعلم Transfer Learning). و الآن أحاول تسريع التدريب للطبقات الجديدة التي أضفتها للنموذج والحفاظ على الطبقات المدربة عند معدل تعلم منخفض. كيف يمكننا القيام بذلك؟ اقتباس
2 Ali Haidar Ahmad نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 يمكن تحقيق ذلك عن طريق إنشاء محسِّنَيْن "GradientDescentOptimizer". لنفرض أن لديك شبكة مسبقة التدريب من 5 طبقات ونريد ضبط معدل التعلم لأول لهم على 0.00001 ونريد طبقة إضافية بمعدل 0.0001 . في هذه الحالة يمكنك استخدام tf.trainable_variables للحصول على جميع متغيرات التدريب وتقرر الاختيار من بينها. كالتالي: var_list1 = [variables from first 5 layers] var_list2 = [the rest of variables] opt1 = tf.train.GradientDescentOptimizer(0.00001) opt2 = tf.train.GradientDescentOptimizer(0.0001) grads = tf.gradients(loss, var_list1 + var_list2) grads1 = grads[:len(var_list1)] grads2 = grads[len(var_list1):] tran_op1 = opt1.apply_gradients(zip(grads1, var_list1)) train_op2 = opt2.apply_gradients(zip(grads2, var_list2)) train_op = tf.group(train_op1, train_op2) 2 اقتباس
السؤال
عامر ابراهيم
لدي نموذج مدرب مسبقاً وأحاول تعديله لاستخدامه في مهمة أخرى (نقل تعلم Transfer Learning). و الآن أحاول تسريع التدريب للطبقات الجديدة التي أضفتها للنموذج والحفاظ على الطبقات المدربة عند معدل تعلم منخفض. كيف يمكننا القيام بذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.