عامر ابراهيم نشر 14 سبتمبر 2021 أرسل تقرير مشاركة نشر 14 سبتمبر 2021 قمت ببناء شبكة عصبية وقمت بتهيئة ال GradientDescentOptimizer بالشكل التالي: initialize = tf.initialize_all_variables() mysess = tf.Session() mysess.run(initialize) m= tf.reduce_mean(tf.square(y - yh)) train_step = tf.train.GradientDescentOptimizer(0.4).minimize(m) كيف يمكنني الآن ضبط معددل تعلم تكيفي له؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Ali Haidar Ahmad نشر 14 سبتمبر 2021 أرسل تقرير مشاركة نشر 14 سبتمبر 2021 عموماً لايوجد طريقة مباشرة للقيام بذلك لأن GradientDescentOptimizer يقبل معدل تعلم ثابت (غير متغير) لكن للقيام بذلك نستفيد من فكرة أن وسيطة ال learning_rate في باني ال GradientDescentOptimizer يمكن أن يكون موتر (Tensor)، وبالتالي يمكننا استخدام معدل تعلم مختلف في كل خطوة، على سبيل المثال: import tensorflow as tf lr = tf.placeholder(tf.float32, shape=[]) # ... # ... train_step = tf.train.GradientDescentOptimizer(name="myOptimizer" learning_rate=learning_rate).minimize(m) mysess = tf.Session() # تمرير قيم مختلفة لمعدل التعلم في كل خطوة تدريب mysess.run(train_step, feed_dict={lr: 0.1}) mysess.run(train_step, feed_dict={lr: 0.01}) mysess.run(train_step, feed_dict={lr: 0.001}) 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ahmed Sharshar نشر 15 سبتمبر 2021 أرسل تقرير مشاركة نشر 15 سبتمبر 2021 طريقة على توضح كيف تقوم بتعيين القيم بشكل يدوي للتحكم بالمعدل كما تشاء، بالاضافة لهذا يوفر tensorflow طريقة تلقائية لضبط قيم التعلم ذاتيا باستخدام tf.train.exponential_decay يمكنك استخدامها في النموذج الخاص بك كالتالي: # Optimizer: هو الذي يتحكم بمعدل التعلم بحيث يقوم بانقاص قيمته في كل دورة batch = tf.Variable(0) learning_rate = tf.train.exponential_decay( 0.01, # معدل التعلم الاساسي. batch * BATCH_SIZE, train_size, 0.95, # معدل التناقص. staircase=True) # نستخدم simple momentum من أجل التحسين optimizer = tf.train.MomentumOptimizer(learning_rate, 0.9).minimize(loss, global_step=batch) اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
عامر ابراهيم
قمت ببناء شبكة عصبية وقمت بتهيئة ال GradientDescentOptimizer بالشكل التالي:
كيف يمكنني الآن ضبط معددل تعلم تكيفي له؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.