2017-04-26 252 views
1

我在張量流程中的訓練過程涉及在兩個模型之間切換。 雖然使用tf.saver並從硬盤恢復模型非常耗時(在我的代碼中,切換頻繁),因此,我想知道是否有方法將模型參數存儲在內存中並將其還原只是從記憶中。我的模型非常小,可以絕對存儲在RAM中。有一個來自stackoverflow的答案。 Storing tensorflow models in memory但是,我不太明白這是如何工作的。有誰知道如何實現這個目標?謝謝。Tensorflow:如何在訓練中將模型保存在內存中

+0

你需要什麼具體的理解幫助?你鏈接的問題確實有一個答案。 – msitt

+0

我不明白如何使用它。 Comp1和Comp2實際上是什麼意思? –

回答

0

你應該只使用兩個獨立的圖表所示:

g1 = tf.Graph() 
g2 = tf.Graph() 

with g1.as_default(): 
    # build your 1st model 
    sess1 = tf.Session(graph=g1) 
    # do some work with sess1 on g1 
    sess1.run(...) 

with g2.as_default(): 
    # build your 2nd model 
    sess2 = tf.Session(graph=g2) 
    # do some work with sess2 on g2 
    sess2.run(...) 

with g1.as_default(): 
    # do some more work with sess1 on g1 
    sess1.run(...) 

with g2.as_default(): 
    # do some more work with sess2 on g2 
    sess2.run(...) 

sess1.close() 
sess2.close() 

你實際上並不需要with聲明,一旦你創建sess1sess2你可以使用他們,他們會參考正確的圖表,但是當您仍然習慣TF如何處理全局變量時,無論何時使用該圖表設置默認圖形都可能是一種很好的形式。

+0

真的非常感謝您的回答,我也想知道如何將模型1中的所有參數複製到模型2(實際上它們都處於相同的結構中)。現在我所做的是存儲模型1,恢復模型2,然後恢復模型1,這很費時間 –

+0

我還沒有嘗試過,但它聽起來像從一個快速谷歌搜索很容易:http:// stackoverflow。 com/questions/36438800/tensorflow-transfers-variables-across-graphs https://www.tensorflow.org/programmers_guide/variable_scope –

+0

這也可能是有用的:http://stackoverflow.com/questions/41600321/distributed -tensorflow最差之間合圖形的複製和 - 之間/ 41601168#41601168 –

相關問題