Tensorflow100%占用GPU内存

在使用GPU进行“炼丹”的过程中,经常会出现,明明数据不是很大,网络规模也很小,batch_size也不大,但是GPU内存占用瞬间拉满。GPU内存拉满的原因可能时Tensorflow默认将内存全部沾满,以利用大块内存,实现提速。如果想要Tensorflow占用的GPU内存下降,可采用以下几种方式:

1. 获取特定数量GPU内存

这种情况可以给程序分配指定大小的内存,剩下的GPU内存该干嘛干嘛,不会受到影响。但是在指定内存过小的情况下,可能会爆内存!

for gpu in tf.config.experimental.list_physical_devices(“GPU”):             
    tf.config.experimental.set_virtual_device_configuration(gpu, 
    [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)]) 

2. 仅在需要时获取GPU内存

Tensorflow炼丹过程中,一直占用着GPU内存,即使是炼丹结束,只要不关闭程序,GPU内存就会一直显示100%占用,这时通过下面的指令就可以让Tensorflow及时释放GPU内存,强迫症瞬间得到治愈。 

for gpu in tf.config.experimental.list_physical_devices(“GPU”):
      tf.config.experimental.set_memory_growth(gpu, True)

3. 将一个GPU分为两个虚拟设备

一个“丹炉”太慢了?多个“丹炉”太贵了?通过下面的指令可以将一个实体“丹炉”虚拟为多个“丹炉”,就是不知道会不会炸炉。

physical_gpus = tf.config.experimental.list_physical_devices(“GPU”)
tf.config.experimental.set_virtual_deivce_configuration(physical_gpus[0],     
    tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048), 
    tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)])

参考文献

[1]  A GéRon. Hands-on machine learning with Scikit-Learn and TensorFlow : concepts, tools, and techniques to build intelligent systems.  2017.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值