《深度学习》Tensorflow2.0 优化器
Tensorflow 2.0的许多优化器与1.0的不同,编写代码时找不到,看了下官方文档,在此记录下。
Convert v1.train to keras.optimizers
Here are things to keep in mind when converting your optimizers:
- 升级您的优化器可能使旧的检查点不兼容。
- 所有的epsilons(应该是α β之类的参数)现在默认为1e-7而不是1e-8(在大多数情况下可以忽略不计)。
- v1.train.GradientDescentOptimizer 可以直接被替换为 tf.keras.optimizers.SGD.
- v1.train.MomentumOptimizer 可以直接被替换为 SGD 优化器, 使用动量参数: tf.keras.optimizers.SGD(…, momentum=…).
- v1.train.AdamOptimizer 可以转换为tf.keras.optimizers.Adam. 参数 beta1 和 beta2 重命名为 beta_1 和 beta_2.
- v1.train.RMSPropOptimizer 可以转换为 tf.keras.optimizers.RMSprop. 参数decay 重命名为 rho.
- v1.train.AdadeltaOptimizer 可以直接转换为 tf.keras.optimizers.Adadelta.
- tf.train.AdagradOptimizer 可以直接转换为 tf.keras.optimizers.Adagrad.
- tf.train.FtrlOptimizer 可以直接转换为 tf.keras.optimizers.Ftrl. 参数 accum_name 和 linear_name arguments 已经被移除.
- The tf.contrib.AdamaxOptimizer 和 tf.contrib.NadamOptimizer, 可以直接转换为 tf.keras.optimizers.Adamax 和 tf.keras.optimizers.Nadam. 参数 beta1 和 beta2 重命名为 beta_1 和 beta_2.
警告:如果您看到您的模型的收敛行为发生了变化,请检查默认的学习率。
以下默认学习率已经改变:
optimizers.Adagrad from 0.01 to 0.001
optimizers.Adadelta from 1.0 to 0.001
optimizers.Adamax from 0.002 to 0.001
optimizers.Nadam from 0.002 to 0.001