Get learning rate of keras model
我似乎无法获得学习率的值。我得到的是下面。
我已经尝试了 200 个 epoch 的模型,并希望查看/更改学习率。这不是正确的方法吗?
1
2 |
>>> print(ig_cnn_model.optimizer.lr)
<tf.Variable ‘lr_6:0’ shape=() dtype=float32_ref> |
使用
1
2 3 4 5 6 7 8 9 10 |
import keras.backend as K from keras.models import Sequential from keras.layers import Dense model = Sequential() print(K.eval(model.optimizer.lr)) |
输出:
1
|
0.001
|
获取与优化器相关的所有信息的最佳方法是使用
示例:
1
2 3 4 5 6 7 |
model.compile(optimizer=optimizerF, loss=lossF, metrics=[‘accuracy’]) model.optimizer.get_config() >>> {‘name’: ‘Adam’, ‘learning_rate’: 0.001, ‘decay’: 0.0, ‘beta_1’: 0.9, ‘beta_2’: 0.999, ‘epsilon’: 1e-07, ‘amsgrad’: False} |
它返回一个包含所有信息的字典。
你可以通过
改变你的学习率
1
2 3 4 5 |
from keras.optimizers import Adam
model.compile(optimizer=Adam(lr=0.001), |
使用 TensorFlow >=2.0:
1
2 3 4 5 6 |
In [1]: import tensorflow as tf
In [2]: opt = tf.keras.optimizers.Adam() In [3]: opt.lr.numpy() |
1
2 3 4 5 |
In [4]: opt.lr.assign(0.1) Out[4]: <tf.Variable ‘UnreadVariable’ shape=() dtype=float32, numpy=0.1> In [5]: opt.lr.numpy() |
其余的超参数也是如此:
1
2 3 4 5 6 7 8 |
In [6]: opt.decay.numpy() Out[6]: 0.0 In [7]: opt.beta_1.numpy() In [8]: opt.beta_2.numpy() |
一些优化器没有在配置中包含他们的名字。
这是一个完整的示例,说明如何获取配置以及如何从配置中重建(即克隆)优化器(其中也包括学习率)。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import keras.optimizers as opt
def get_opt_config(optimizer): def clone_opt(opt_config): |
测试
1
2 3 4 5 6 7 |
if __name__ == ‘__main__’:
rmsprop = opt.RMSprop() configs = get_opt_config(rmsprop) print(configs) cloned_rmsprop = clone_opt(configs) print(cloned_rmsprop) print(cloned_rmsprop.get_config()) |
输出
1
2 3 |
{‘lr’: 0.0010000000474974513, ‘rho’: 0.8999999761581421, ‘decay’: 0.0, ‘epsilon’: 1e-07, ‘name’: ‘RMSprop’}
<keras.optimizers.RMSprop object at 0x7f96370a9358> {‘lr’: 0.0010000000474974513, ‘rho’: 0.8999999761581421, ‘decay’: 0.0, ‘epsilon’: 1e-07} |
另一种方式:
opt = keras.optimizers.SGD()
print(‘learning rate={}’.format(opt.lr.numpy()))
model.compile(optimizer = opt, …)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/268027.html