控制 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):

在配置选项的信息在这里