为什么要写
一开始以为安装tensorflow是一件很方便的事,等装完了之后已经花费了我两天的时间,除了粗心意外没有别的解释了,不要说我智商低,我自己知道就好。。。
tensorflow更新之后确实是强大了许多,在各种方面都超过了caffe,mxnet等一系列深度学习框架,在这里我不想去吹捧,懒得贴数据了。
开始安装
准备阶段
为了方便起见,事先安装一个Anaconda是很好的~怎么装很简单,google it.
这个阶段我们需要安装好tensorflow所需的各种环境,众所周知,tensorflow是基于cuda编程的,依赖于cudNN,并且大部分框架都是这个套路,应为基座都是NVIDIA大佬,所以在硬件的计算能力以及内存分配上各种框架差别不大。至于AMD现在支持的openCL还没有很流行,我还是挺喜欢农民卡的。
以上所讲,就是为了让大家理解为什么需要安装下面的这种前置配置。
官网提示:
CUDA® Toolkit 8.0. For details, see NVIDIA’s documentation. Ensure that you append the relevant Cuda pathnames to the LD_LIBRARY_PATH environment variable as described in the NVIDIA documentation.
The NVIDIA drivers associated with CUDA Toolkit 8.0.
cuDNN v5.1. For details, see NVIDIA’s documentation. Ensure that you create the CUDA_HOME environment variable as described in the NVIDIA documentation.
GPU card with CUDA Compute Capability 3.0 or higher. See NVIDIA documentation for a list of supported GPU cards.
The libcupti-dev library, which is the NVIDIA CUDA Profile Tools Interface. This library provides advanced profiling support. To install this library, issue the following command:
$ sudo apt-get install libcupti-dev
挺好理解的,一共其实也就三个部分:
1. 安装Cuda
CUDA是NVIIDA推出的使用GPU资源进行通用计算的SDK,CUDA的安装包里一般集成了显卡驱动,我们直接去官网下载 http://developer.nvidia.com/c…
在安装前,我们需要暂停当前NVIDIA驱动的X server
sudo init 3
之后
chmod u+x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run
接下来是CUDA安装过程。
基本都很好理解我就不细说了。奉劝你最好不要改默认的安装路径,不然后面好多需要修改!~
2.安装cuDNN
这是NVIDIA推出的深度学习中CNN和RNN的高度优化的实现。
链接: http://developer.nvidia.com/r…
cd /usr/local 先进这个目录,前提是你之前安装的cuda在这个目录下,应为等等就是向cuda的lib里添加东西
sudo tar -xzvf ~/downloads/cudnn-8.0-linux-x64-v5.1.tgz
这样就完成了安装,接下来修改环境变量
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin:$PATH
source ~/.bashrc
tips: 如果你使用的是zsh,那么需要修改的是~/.zshrc
3. 好了,第三步很简单,就是执行一个命令
$ sudo apt-get install libcupti-dev
正式开始
准备工作做完了,现在我们开始编译安装 tensorflow
确认你电脑里有gcc和bazel,如果没有就apt-get一下。
下载Tensorflow 1.0.0-rc0的代码,然后 ./configure 编译安装,一路绿灯直到:
Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]
这里不同的GPU可能有不同的compute capability,我们可以在官网查到具体树枝,比如GTX 1080和新Titan X是6.1 ,而GTX 980 和旧版的GTX Titan X 是 5.2
耐心等待…
结束之后输入下面命令。
bazel build --copt=-match=native -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-1.0.0rc0-cp35-cp35m-linux_86_64.whl
如果你是python2上面就是cp27-cp27m
大功告成!!!
如果安装过程中出现什么问题查不到解决办法,可以向我询问,也许能提供帮助~
Test
下面我们就去jupyter里跑两个例子。
拉普拉斯变换
import tensorflow as tf
import numpy as np
x=np.array([[1,1,1],[1,-8,1],[1,1,1]])
w=tf.Variable(initial_value=x)
sess=tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(w))
相乘
import tensorflow as tf
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.mul(a, b)
with tf.Session() as sess:
print('a+b=',sess.run(add, feed_dict={a: 2, b: 3}))
print('a*b=',sess.run(mul, feed_dict={a: 2, b: 3}))
“/cpu:0”: 机器的 CPU.
“/gpu:0”: 机器的第一个 GPU, 如果有的话.
“/gpu:1”: 机器的第二个 GPU, 以此类推.
给个非常好的链接,tensorflow的官方文档 http://docs.pythontab.com/ten…
此外,nvidia-smi 来看显卡运行啊,配置啊之类的有个很好的说明:http://www.microway.com/hpc-t…
that’a all