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

تطبيق Exponential Learning Rate Decay في Keras و Tensorflow

عامر ابراهيم

السؤال

Recommended Posts

  • 1

تقدم لك كيراس Keras و tensorflow.keras الكلاس ExponentialDecay لتطبيق تقنية Exponential Learning Rate Decay ولها الشكل التالي:

tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate, decay_steps, decay_rate, staircase=False
)

حيث أن الوسيط الأول هو قيمة معدل التعلم الابتدائي، أما الوسيط الثاني فهو عدد خطوات ال decay،والوسيط الثالث هو مقدار ال decay ( معامل التغير في قيمة معدل التعلم ويفضل أن تكون قيمته 0.95 ولايجب أن تتجاوز ال 1)، الوسيط الأخير لجعل ناتج القسمة step/decaysteps قيمة صحيحة وبالتالي ستتبع تغيرات قيم معدل التعلم نهجاً سلميَاً.
أما المعادلة التي يتم تطبيقها لحساب ال lr في كل epoch هي:

def decayed_learning_rate(step):
  return initial_learning_rate * decay_rate ^ (step / decay_steps)

ولاستخدامه نقوم بتعريف object من هذا الكلاس ثم تمريره إلى وسيطة learning Rate في أي Optimaizer معرف في إطار العمل. مثال(decay كل 100000 خطوة بأساس 0.96:

# نحدد القيمة الأولية
initial_learning_rate = 0.1
# نعرَف غرض
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate,
    decay_steps=100000,
    decay_rate=0.96,
    staircase=True)
# نقوم بتمريره للأوبتيمايزر
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=lr_schedule),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(data, labels, epochs=5)

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...