TensorFlow使用GPU训练网络时多块显卡的显存使用问题

当使用TensorFlow进行GPU训练时,发现即使只使用单个GPU,所有显卡的显存都会被占用。解决这个问题可以通过设置`allow_growth`或指定显存分配率。`allow_growth`允许按需动态分配显存,而`gpu_options.per_process_gpu_memory_fraction`则限制每个GPU的显存使用比例。此外,还可以通过设置环境变量`CUDA_VISIBLE_DEVICES`选择使用特定GPU,但这将限制其他程序对GPU的访问。
摘要由CSDN通过智能技术生成

刚开始使用实验室的服务器网络训练时,有这样的现象:
这里写图片描述
能看到,只使用单个GPU跑程序,但三块显卡的显存都被占用。

这是因为TensorFlow训练时默认占用所有GPU的显存。引自TF官网:

By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICES) visible to the process.

这样如果有人想使用其他两个GPU跑程序,就会因为显存不足而无法运行。
所以需要人为指定显存占用率或指定使用单张显卡。

根据 TF官网tutorial部分的Using GPUs,可以总结三种方法:

  1. 第一种是使用 allow_growth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值