اذهب إلى المحتوى

السؤال

نشر

قمت ببناء شبكة عصبية وقمت بتهيئة ال 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)

كيف يمكنني الآن ضبط معددل تعلم تكيفي له؟
 

Recommended Posts

  • 1
نشر

عموماً لايوجد طريقة مباشرة للقيام بذلك لأن 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})
  • 0
نشر

طريقة على توضح كيف تقوم بتعيين القيم بشكل يدوي للتحكم بالمعدل كما تشاء، بالاضافة لهذا  يوفر 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)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...