這篇博客會不定期整理我在 tensorflow 中出現的問題和坑。
1. CUDA_ERROR_OUT_OF_MEMORY:
tensorflow 在執行過程中會默認使用全部的 GPU 內存,給系統保留 200 M,但是在我的系統上會在分配內存時被拒絕導致報錯,因此我們可以使用如下語句指定 GPU 內存的分配比例:
# 配置每個 GPU 上占用的內存的比例 gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.95) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
可以看看這里的解釋:stackoverflow
還有可能是這個問題:stackoverflow
2. 設置提示信息的等級
# 在 import tensorflow 之前加入 import os os.environ['TF_CPP_MIN_LOG_LEVEL']='1' # 這是默認的顯示等級,顯示所有信息 # 2級 import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' # 只顯示 warning 和 Error # 3級 import os os.environ['TF_CPP_MIN_LOG_LEVEL']='3' # 只顯示 Error
3. tensorflow 不能直接並發運行同時訓練多個模型
即便是同步運算,如果不重置計算圖,也會導致下標溢出的問題:
在每次執行新模型的訓練之前,一定要重置計算圖:
tf.reset_default_graph()