2016-12-14 90 views
0

我創建了一個曲線圖與AdamOptimizer,這是我然後保存tf.train.Saver().save(session, "model_name")修改進口Tensorflow圖學習速度

訓練了一段時間,我能夠導入整個圖形和變量在不同的後會話和恢復訓練與

saver = tf.train.import_meta_graph("model_name") 
saver.restore(session, "model_name") 

我希望做的是,導入圖形+變量後,恢復了優化,改變AdamOptimizer的learning_rate之前。那可能嗎?

編輯:這樣做的一種方法是將學習速率定義爲佔位符,並每次輸入不同的值。但讓我們假設圖表已經被保存了,但沒有爲了爭論而做這件事。

回答

1

我認爲你可以用佔位符替換learning_rate,即。

learning_rate = tf.placeholder(tf.float32,shape=(),name="learing_rate") 
train_op = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(your_loss_tensor, name="train_op") 

當你恢復你的圖表,讓所有的所有OP和相關的像train_oplearning_rate培養張量使用

train_op = graph.get_operation_by_name("train_op") 
learning_rate = graph.get_tensor_by_name("learning_rate:0") 

和運行列車

sess.run(train_op, feed_dict={learning_rate: whatever_you_what}) 

UPDATE: 如果要更改已保存的圖的某些輸入,請參見this

+0

這確實會起作用,但正如我在編輯中提到的,我對如果圖已經被保存將如何完成感興趣。我想我的問題可以概括爲:如何在保存和導入之後修改圖形? – Borja

+0

對不起,我沒有看到你的更新,我會研究它。 – Borja