為什麼要寫
一開始以為安裝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