如何使用GPU而不是CPU
首先查看设备
1 2 | from tensorflow.python.client import device_lib print (device_lib.list_local_devices()) |
如果发现只有一个CPU可用
则说明可能存在一下情况:
1 tensorflow-gpu是否安装,版本查看,如果版本低于tensorflow,则默认启动CPU(t-gpu版本最好高于t)
1 | pip install tensorflow - gpu = = 2.3 . 0 - i https: / / pypi.douban.com / simple / |
2 CUDA初始化
在开始训练的前面输入如下:
1 2 3 4 5 6 7 8 9 10 | # 使用CPU: import os os.environ[ "CUDA_DEVICE_ORDER" ] = "PCI_BUS_ID" os.environ[ "CUDA_VISIBLE_DEVICES" ] = "-1" # 这一行注释掉就是使用cpu,不注释就是使用gpu # 使用GPU: import os os.environ[ "CUDA_DEVICE_ORDER" ] = "PCI_BUS_ID" # os.environ['CUDA_VISIBLE_DEVICES'] = "0" #这个是仅选择使用GPU 0 # os.environ['CUDA_VISIBLE_DEVICES'] = "1" #这个是仅选择使用GPU 1 # os.environ['CUDA_VISIBLE_DEVICES'] = “0,1” #设置当前使用的GPU设备为0,1号 |
tensorflow使用GPU的设置方式
方法一
1 2 3 | Config = tf.ConfigProto(allow_soft_placement = True ) ##:如果你指定的设备不存在,允许TF自动分配设备 Config.gpu_options.allow_growth = True ##动态分配内存 sess = tf.session(config = config) |
方法二
1 2 3 4 | gpu_options = tf.GPUOptions(allow_growth = True ) gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction = 0.8 ,allow_growth = True ) ##每个gpu占用0.8的显存 config = tf.ConfigProto(gpu_options = gpu_options,allow_soft_placement = True ) sess = tf.session(config = config) ##如果电脑有多个GPU,tensorflow默认全部使用。如果想只使用部分GPU,可以设置CUDA_VISIBLE_DEVICES。 |
控制使用哪个gpu
1 2 3 | os.environ[“CUDA_DEVICE_ORDER”] = “PCI_BUS_ID” ##指定的设备名称 os.environ[‘CUDA_VISIBLE_DEVICES '] = ‘0' #使用 GPU 0 os.environ[‘CUDA_VISIBLE_DEVICES '] = ‘0,1' # 使用 GPU 0,1 |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。