控制 GPU 内存分配
默认情况下,TensorFlow 预先分配 GPU 卡的整个内存(这可能会导致 CUDA_OUT_OF_MEMORY
警告)。
要改变这一点,就有可能
-
使用
per_process_gpu_memory_fraction
配置选项更改预分配的内存百分比,介于 0 和 1 之间的值,指示
为每个进程预分配的可用 GPU 内存的哪一部分。1 表示
预分配所有 GPU 内存,0.5 表示该进程
分配~50%的可用 GPU 内存。 -
使用
allow_growth
config 选项禁用预分配。内存分配随着使用量的增长而增长。如果为 true,则分配器不预先分配整个指定的
GPU 内存区域,而是从小开始并根据需要增长。
例如:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config) as sess:
要么
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess= tf.Session(config=config):
在配置选项的信息在这里 。