1. 程式人生 > >Tensorflow取消佔用全部GPU

Tensorflow取消佔用全部GPU

參考:https://www.cnblogs.com/jiu0821/p/9501665.html

Tensorflow預設是會佔用全部的GPU,而有時候你根本不需要那麼佔用那麼多GPU資源,這時候就可以採用如下三種方法進行解決:

1、在構造tf.Session()時候通過傳遞tf.GPUOptions作為可選配置引數的一部分來顯式地指定需要分配的視訊記憶體比例,如下所示:

# 假如有12GB的視訊記憶體並使用其中的4GB:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

per_process_gpu_memory_fraction指定了每個GPU程序中使用視訊記憶體的上限,但它只能均勻作用於所有GPU,無法對不同GPU設定不同的上限

2、嘗試如下設定:

config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)

當allow_growth設定為True時,分配器將不會指定所有的GPU記憶體,而是根據需求增長

3、指定GPU編號:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

或者在指令碼或者命令列中指定
export CUDA_VISIBLE_DEVICES=0