在使用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)])