原文发自:February 17, 2017
Tensorflow-gpu版本的安装与配置
先前在Win10环境下安装Tensorflow(默认cpu版)的时候已经说明,Win10中的tensorflow支持python3.5的版本,但不支持python2.7。由于之前的安装环境已经配置完成。因此,直接在Anaconda3中的Anaconda Prompt工具下,键入命令:
pip install tensorflow-gpu
但在安装的过程中出现如下异常情况,主要原因如异常中的提示:You are using pip version 8.1.2, however version 9.0.1 is available. You should consider upgrading via the “python -m pip install –upgarding pip” command. 安装提示,可以解决异常:
python -m pip install –upgarding pip
重新键入tensorflow安装命令。
注意:虽然之前已经安装过tensorflow(cpu)的版本(安装命令:pip install tensorflow),但当时没有找到卸载命令。所以就直接安装了GPU版本。后来发现pip的卸载命令如下,如果需要可以参考:
pip uninstall tensorflow
CUDA与cuDNN安装与配置
- 参考资料:http://blog.csdn.net/sb19931201/article/details/53648615
- cuda v8.0安装包下载:https://developer.nvidia.com/cuda-downloads
- cuDNN package下载:https://developer.nvidia.com/cudnn
(1) CUDA下载安装
CUDA安装包下载时,建议exe(loacl)本地下载模式,在线安装比较坑。
下载完成之后,进行安装就可以了。
(2) cnDNN的下载与使用
下载cnDNN安装包需要注册并且填一堆问卷,下下来以后把相关包不用安装,直接拷到cuda路径对应的文件夹下面就行(后面再说)。
(3) CUDA安装完成测试
(4) 处理一些异常问题
TensorFlow 是一个编程系统, 使用图来表示计算任务,图必须在Session(会话)里被启动. Session将图的op(操作)分发到诸如CPU或GPU之类的设备上运行。所以,这个时候你运行python然后import tensorflow as tf
是不会报错的,但是当你要执行tf.Session()
的时候可能就有问题了。这个时候将会调用cuda,我在这里遇到的问题是各种lib,dll加载不了。经过一番检查,定位到问题,cuda安装完成后默认的环境变量配置不对,CUDA_PATH是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
,但是这样不能直接访问到bin和lib\x64下的程序包,在path中加上这两个路径即可。
cnDNN库的使用:解压刚才下载的安装包,将这三个文件夹下的文件拷到CUDA对应的文件夹下面即可:
这样据说就大功告成了。
Tensorflow测试
(1) 代码测试
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
(2) 官方代码测试
The TensorFlow implementation translates the graph definition into executable operations distributed across available compute resources, such as the CPU or one of your computer’s GPU cards. In general you do not have to specify CPUs or GPUs explicitly. TensorFlow uses your first GPU, if you have one, for as many operations as possible.
#Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
#Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#Runs the op.
print sess.run(c)
输出:
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K40c, pci bus
id: 0000:05:00.0
b: /job:localhost/replica:0/task:0/gpu:0
a: /job:localhost/replica:0/task:0/gpu:0
MatMul: /job:localhost/replica:0/task:0/gpu:0
[[ 22. 28.]
[ 49. 64.]]
我的出现异常:
Tensorflow中文官方教程-GPU使用:http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html
GPU使用情况查看
nvidia-smi -l # 实时返回GPU使用情况
补充:
(1) 我的GPU配置详情:
可见,我的GPU显卡并不支持CUDA computing,不知道是不是这里的原因。
时间:2017.03.02
事情出现了一个喜剧性一幕,当一个朋友在公司电脑上尝试使用GeForce GT 705的显卡开启Tensorflow GPU的运算模式时,发现显卡的运算能力只有2.1,不能满足CUDA支持的最低版本3.0,于是继续进行下去。这时又再次核查了一遍我笔记本上的GPU显卡,本没有报什么希望,因为之前已经检查过该显卡并不支持CUDA运算,如上图。但这次发现:
我都傻眼了。好吧,既然GPU可以支持,我们继续。上述过程中的CUDA和cuDNN安装过程应该是没有问题,现在继续检查TensorflowGPU版本是否安装成功。
再次测试Tensorflow-gpu是否安装成功
进入tensorflow环境下的python,可以看到输出的命令如下:(如果是CPU版本的则不会有下面的输出)
使用官方文档中的测试代码测试,输出结果如下:
说明在tensorflow环境下,tensorflow-gpu版本已经安装成功,CUDA也可以自动调用,使用的GPU为gpu:0,也就是电脑中的第一块可用GPU。