TensorFlow 學習率的設定
阿新 • • 發佈:2019-01-03
為了解決學習率不能過大不能過小的問題,TensorFlow提供了靈活的學習率設定方法:指數衰減法
tensorflow.train.exponential_decay(learing_rate,global_step,decay_steps,decay_rate,staircase=False,name=None)
Args:
- learning_rate : 初始學習率,型別為float32 或 float63的張量或者python number型別
- global_step : 一個全域性的當前迭代次數,型別為int32 或 int64的張量或者python number型別,不能為負
- decay_steps : 衰減速度,型別為int32 或 int64的張量或者python number型別,必須為正
- decay_rate : 衰減率,型別為float32 或 float63的張量或者python number型別
- staircase : 型別為boolean,通過設定它選擇不同的衰減方式,預設為False表示連續衰減,True表示階梯狀衰減
- name : 型別為string,操作的名稱
Return:
衰減的學習率
這個函式將指數衰減函式應用於初始化學習率,它使用一個名稱為global_step變數去計算衰減學習率,可以將一個在迭代中自增的TensorFlow變數傳給它。
這個函式返回一個衰減學習率,計算方式如下:
decayed_learning_rate = learing_rate * decay_rate^(global_step / decay_steps)
如果引數staircase為True,global / decay_steps 轉化為一個整數。
Example:每10000輪一個0.96的速度衰減一次
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.exponential_decay(starter_learning_rate, global_step,100000 , 0.96, staircase=True)
optimizer = tf.GradientDescent(learning_rate)
optimizer.minimize(...my loss..., global_step=global_step)