TensorFlow訓練內(顯)存不斷增長

    在使用tensorflow過程中,一個不標準的操作,就可能導致程序出各種bug,今天我們的豬腳就是“TensorFlow訓練內(顯)存不斷增長”,此問題並不是我遇到的,是公司一位同事遇到的,我把代碼翻了一下,看出了問題所在,由於一些保密原因,我就不在這裏展示那個代碼,但可以用其他代碼來替代。

import tensorflow as tf
x = tf.constant(10)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
while True:
    print(sess.run(x))

    上面這個代碼,x是一個節點,即使陷入死循環,也不會產生新的節點(此句很有深意

import tensorflow as tf
x = tf.constant(10)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
while True:
    print(sess.run(x+x))

    這個代碼,x+x會不斷的產生臨時節點,而且還沒釋放,所以內(顯)存不斷增長,所以最後會導致死機。

    解決辦法:1.釋放臨時節點;2.避免在run裏面進行運算產生臨時節點,即出了結果再計算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章