3
我想在一定数量的纪元后从Adam切换到SGD。我该如何顺利完成这项工作,以便将权重/梯度传递给新优化器?如何在培训期间切换tf.train.Optimizers?
我想在一定数量的纪元后从Adam切换到SGD。我该如何顺利完成这项工作,以便将权重/梯度传递给新优化器?如何在培训期间切换tf.train.Optimizers?
只是定义了两个优化,并在它们之间切换:
sgd_optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
adap_optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
...
for epoch in range(100):
for (x, y) in zip(train_X, train_Y):
optimizer = sgd_optimizer if epoch > 50 else adap_optimizer
sess.run(optimizer, feed_dict={X: x, Y: y})
优化器仅封装的梯度应用到张量的方式,可容纳短短自己的变量。模型权重不存储在优化器中,因此您可以轻松切换它们。
请添加一些代码或显示您尝试过的内容。 – PalimPalim