为什么要写

一开始以为安装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


jasperyang
203 声望58 粉丝

Highest purpose is Hacking...