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