电脑上同时安装了tensorflow和tensorflow-gpu,如何默认使用tensorflow-gpu

虽然也使用tensorflow这么长时间了,但是有个问题我一直没去思考,其实这问题也有困扰我很长时间,但是一直没有去思考如何解决,直到有一天运行模型的时候用cpua实在是卡到起飞,才决定去查找一下,其实也很简单。

我们在使用tensorflow时,在代码里总是这样写 import tensorflow as tf 不少同学会遇到这种情况,电脑上既有tensorflow又有ensorflow-gpu,那么在运行代码的时候到底如何指定使用tensorflow-gpu的,又如何指定使用cpu

版的tensorflow呢,毕竟是使用同一个语句import引进来的。不少文章会告诉你在代码里加入类似的语句:
 

import os 
os.environ["CUDA_VISIBLE_DEVICES"] = "0"#指定在第0块GPU上跑

这语句对不对呢,对。但你加入进去之后好用吗,不好用。

问题就是,你现在调用的tensorflow是cpu版本的,即使你已经装了tensorflow-gpu,不信的话,可以在python下试试这样一条语句

from tensorflow.python.client import device_lib as _device_lib
local_device_protos = device_lib.list_local_devices()
devices = [x.name for x in local_device_protos]
for d in devices:
	print(d)

不出意外,打出来的信息全是cpu设备的信息。

这种问题应该怎么解决呢,有的同学想,那我把tensorflow的cpu版本卸载就好啦,华生,你发现了盲点。这样就会报错 No module named ‘tensorflow’。。。。

正确解决办法是,从新安装tensorflow-gpu,因为系统默认使用最后一次安装的tensorflow进行运算,tensorflow-gpu会替代原来的tensorflow版本,这样你在使用tensorflow.__version__()查看版本时就是tensorflow-gpu的版本,这样就说明你成功的导入了tensorflow-gpu。就可以愉快的使用gpu跑代码啦

使用tensorflow-gpu时,要注意本机的cuda和cudnn版本三者之间关系是否对应,可以按照这个博客进行安装:https://blog.csdn.net/sunmingyang1987/article/details/102872658

PS:tensorflow另一种查看GPU的方法:
 

import tensorflow as tf

gpu_device_name = tf.test.gpu_device_name()

print(gpu_device_name)

猜你喜欢

转载自blog.csdn.net/qq_41368074/article/details/109641429