在训练模型的过程中遇到程序报错,结果发现时因为电脑显存不够,资源都已经分配完了。根据多方查阅,找到了此问题的解决方法,在这里记录和分享一下~
出现问题
错误:
Error message: OOM when allocating tensor with shape[8,64,256,256] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[node moments_3/SquaredDifference (defined at D:\Pycharm\arbitrary_style_transfer-master\train.py:73) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
解决办法
在main函数中添加如下这段代码
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"] = '0' #指定第一块GPU可用
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.5 # 程序最多只能占用指定gpu50%的显存
config.gpu_options.allow_growth = True #程序按需申请内存
sess = tf.Session(config=config)
位置就在开头,如图:
查看电脑显存
打开电脑
设置-
>
系统
->
显示
->
高级显示设置
->
显示适配器属性