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

كيفية تعيين معدل تعلم تكيفي ل GradientDescentOptimizer في تنسرفلو Tensorflow

عامر ابراهيم

السؤال

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...