cha*_*423 6 python keras tensorflow
我最初在Keras开发了一个分类器,在那里我的优化器非常容易应用于衰减。
adam = keras.optimizers.Adam(decay=0.001)
Run Code Online (Sandbox Code Playgroud)
最近,我试图将整个代码更改为纯Tensorflow,但无法弄清楚如何将相同的衰减机制正确地应用于优化器。
optimizer = tf.train.AdamOptimizer()
train_op = optimizer.minimize(loss=loss,global_step=tf.train.get_global_step())
Run Code Online (Sandbox Code Playgroud)
如何将在Keras代码段中看到的相同学习速率衰减应用于Tensorflow代码段?
您可以找到有关张量流中衰减的不错的文档:
...
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100000, 0.96, staircase=True)
learning_step = ( tf.train.GradientDescentOptimizer(learning_rate)
.minimize(...my loss..., global_step=global_step)
)
Run Code Online (Sandbox Code Playgroud)
tf.train.exponential_decay对学习率应用指数衰减。
其他衰变:
inverse_time_decaypolynomial_decaylinear_cosine_decayexponential_decaycosine_decaycosine_decay_restartsnatural_exp_decaynoisy_linear_cosine_decayKeras 在 AdamOptimizer 中实现了类似于下面的衰减,这与张量流中的inverse_time_decay非常接近:
lr = self.lr * (1. / (1. + self.decay * self.iterations))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |