使用tensorflow,如果不加设置,即使是很小的模型也会占用整块GPU,造成资源浪费。

所以我们需要设置,使程序按需使用GPU。

具体设置方法:

1 gpu_options = tf.GPUOptions(allow_growth=True)
2 sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
3 # sess = tf.InteractiveSession(config=tf.ConfigProto(gpu_options=gpu_options))

 

 1 gpu_no = '0' # or '1'
 2 os.environ["CUDA_VISIBLE_DEVICES"] = gpu_no
 3 
 4 # 定义TensorFlow配置
 5 config = tf.ConfigProto()
 6 
 7 # 配置GPU内存分配方式,按需增长,很关键
 8 config.gpu_options.allow_growth = True
 9 
10 # 配置可使用的显存比例
11 config.gpu_options.per_process_gpu_memory_fraction = 0.1
12 
13 # 在创建session的时候把config作为参数传进去
14 sess = tf.InteractiveSession(config = config)

 

1 gpu_options = tf.GPUOptions(allow_growth=True)
2 # sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
3 
4 with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:

 说明:使用jupyter notebook,如果没有上述设置,整个GPU会一直被占用;使用pycharm,虽然GPU不会被一直占用,但是运行时还是会占用整个GPU,所以也需要上述设置。