1. 程式人生 > >TensorFlow叠代速度變慢的問題

TensorFlow叠代速度變慢的問題

節點 default class 時間 驗證 net final font memory

最近用TensorFlow實現遺傳算法(Genetic Algorithms),發現叠代速度越來越慢,用time.time()觀察以後,發現每次叠代都要比上一次慢0.5秒左右,但是每次叠代的計算量是差不多的。研究後發現,這是因為每次叠代都在計算圖(Graph)裏面增加了新的節點,節點越來越多,導致Memory Leak,叠代速度越來越慢。為了驗證是否是這個原因造成的,增加了一行代碼鎖定圖:

graph.finalize()

結果報錯,說明確實是這個原因造成的。

解決的辦法是,每次叠代前重置默認圖,然後新建一個圖,將新建的圖作為默認圖,然後再向圖裏面增加節點。代碼如下:

    tf.reset_default_graph()
    graph 
= tf.Graph() with graph.as_default() as g:

加上這幾句代碼以後,每次叠代的運行時間就差不多了。

TensorFlow叠代速度變慢的問題