170620 tensorflow中如何随迭代次数更改学习率learning rate

时间:2021-08-01 13:51:57

引言

  • 高学习率有利于加快迭代更新的速度,但不利于找到局部/全局最优点
  • 低学习率有利于找到局部最优点,但可能使得模型无法跳出局部最优而无法获取全局最优
  • 一般先利用较大的学习率寻找全局近似最优,再利用较小的学习率寻找局部最优,以期望获取模型的全局最优解。

公式
learningrate=min(learningrate)+[max(learningrate)min(learningrate)]eiterationdecayspeed
结果
170620 tensorflow中如何随迭代次数更改学习率learning rate
代码

# -*- coding: utf-8 -*-
"""
Created on Tue Jun 20 12:55:12 2017

@author: Administrator
"""

import numpy as np
import matplotlib.pyplot as plt
import math

lr = []
for i in range(10001):
max_learning_rate = 0.003
min_learning_rate = 0.0001
decay_speed = 2000.0
learning_rate = min_learning_rate + (max_learning_rate - min_learning_rate) * math.exp(-i/decay_speed)
lr.append(learning_rate)

plt.plot(np.arange(10001),lr)
plt.xlabel('iterations')
plt.ylabel('learning rate')
plt.title('plot the learning rate curve')
plt.tight_layout()
plt.show()