如何使用特定显卡跑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,...)