使用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,所以也需要上述设置。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tensorflow按需分配GPU问题 - Python技术站