这篇博客会不定期整理我在 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()