如何使用特定显卡跑tensorflow

时间:2022-11-16 13:47:07

如何使用特定显卡跑tensorflow

直入正题,有两种比较简单的方法

方法一:改变系统变量使得仅目标显卡可见

export CUDA_VISIBLE_DEVICES=0 #这里是要使用的GPU编号,正常的话是从0开始

然后再运行tensorflow即可

方法二:使用tensorflow api添加设备环境

with tensorflow.device('/gpu:0'):
    main tensorflow program

如果想查看这种方法的官方手册,请戳这里

多说一句:

不管你通过方法一让哪一块或多块显卡可见,则在tensorflow的设备编号里这些可见卡的最小编号便变为“/gpu:0”。
此外,使用方法二的话虽然不会占用其他显卡的计算资源,却会生成对应线程并占用少量显存资源。关于这个原因吗,嗯,我还没搞懂~

注意

如果使用方法二,需要修改一下Session配置,否则在默认配置下,所有可见显卡的显存都会被占用(暂时还没找到原因)。
修改代码:

config=tensorflow.ConfigProto()
config.gpu_options.allow_growth=True
...
sess=tensorflow.Session(config=config,...)