failed to allocate 18.41M (19300352 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY

tensorflow 训练时出现failed to allocate 18.41M (19300352 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY

我在ubuntu16.04中安装的是tensorflow-gpu1.6.0版本的,在使用jupyter notebook训练时出现了failed to allocate 18.41M (19300352 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY的错误信息,通过网上大量寻找资料后发现我的GPU一部分资源被我之前的程序占用了,导致我的可用资源只有18.41M,天呐,18.41M还玩个毛线训练呀,赶紧关掉之前的占用,释放空间。

一般我们使用nvidia-smi来查看GPU的使用情况,然后使用sudo kill 'ID'来关掉占用GPU的进程,如果这样操作之后还是出现CUDA_ERROR_OUT_OF_MEMORY就可以使用下面的命令

sudo fuser -v /dev/nvidia* #查找占用GPU资源的PID
 sudo kill -9 ***(PID)  # 根据相应的PID解除显存占用

执行完之后再执行

sudo fuser -v /dev/nvidia* #查找占用GPU资源的PID

查看有没有关掉,直到完全关闭完全之后就可以正常使用GPU进行训练了。
在训练的时候可以使用下面的命令来设置使用多少GPU资源进行训练

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.9)#0.9表示可以使用GPU 90%的资源进行训练,可以任意修改

sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

你可能感兴趣的:(tensorflow)