安裝 tensorflow 教學 GPU:Nvidia1070(from source)

Tensorflow 官網:

https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#pip-installation

 

 

作業系統:Ubuntu 14.04  64位元

顯卡:Nvidia 1070

Cuda version: 8.0

Cudnn version : 5.0

 

 

ㄧ.簡易版(沒有GPU):

 

到官網選擇您要的python 版本

 

小編這裡選擇 python 2.7, 打入下面指令

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

 

然後安裝 說實在的 真的沒什麼技術 哈哈

sudo pip install –upgrade $TF_BINARY_URL

 

 

二.簡易版 GPU (限定 cuda 7.5, cudnn v4.0)

 

一樣方法, 選擇作業系統版本 打入下面指令 (小編是 Ubuntu 14.04 64bit)

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

 

安裝:

sudo pip install –upgrade $TF_BINARY_URL

 

 

三.複雜版 安裝任意版本 cuda cudnn (從來源安裝)

 

因為小編這張顯卡算蠻新的

所以安裝cuda 7.5 會造成很多問題

網路上查閱相關資料發現 cuda 8.0 是最符合的

因此只有唯一的安裝方法 Install From Source

大概說一下,從來源安裝的意思就是 去clone tensorflow 原始碼

然後經由 google 開發的軟體 bazel 進行編譯 , 有點類似 Cmake

最後自己做出 pip 安裝包,經由pip 安裝

前面的顯卡驅動 cuda 安裝可以參考這裡

這裡只講最後的部份

 

1.先安裝相關包

 

sudo apt-get install swig python-dev python-numpy python-wheel python-pip

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip

 

2.安裝bazel:   bazel 官網

 

a.按照官網描述 先從PPA安裝 JDK8.0

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

 

b.下載安裝檔:檔源

小編這裡選擇 bazel-0.3.1-installer-linux-x86_64.sh

c.下載完成後 執行安裝

./bazel-0.3.1-installer-linux-x86_64.sh –user

d.設置環境

gedit etc/profile

再最後面加上

export PATH=”$PATH:$HOME/bin”

執行

source /etc/profile

再terminal 打上 bazel  安裝成功圖示

 

 

3.設定 tensorflow 環境

 

到tensorflow 根目錄 執行configure 一步一步根據你的環境設定

下圖為我的設定圖

./configure

 

 

4.開始用bazel編譯tensorflow

a.下載源代碼:

git clone https://github.com/tensorflow/tensorflow.git

 

b.修改資料

到tensorflw根目錄 移到 third_party/gpus/crosstool/CROSSTOOL

打開資料 找到相關的程式碼 往下加入此行

cxx_builtin_include_directory: “/usr/local/cuda-8.0/include”

 

c.開始用bazel compile tensorflow

bazel build -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package

 

成功畫面:

 

 

 

d.再/tmp/tensorflow_pkg 路徑之下建立出 安裝的package

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

 

 

e.安裝

sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

 

 

 

 

5.測試tensorflow程式碼:

 

#!/usr/bin/env python
 
# Author: Abhay Harpale
# Website: abhay.harpale.net/blog/
 
"""
gpu test for tensorflow
"""
 
import tensorflow as tf
 
# 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)
 
 
如果畫面如下 就表示成功拉~~~灑花~~~
 

 

 

 

 

參考資料:

http://abhay.harpale.net/blog/machine-learning/deep-learning/getting-tensorflow-to-work-with-gpu-nvidia-gtx-1080-on-ubuntu-16-04-lts/

 

 

 

0 0 votes
Article Rating
Subscribe
Notify of
guest

10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nimo
Nimo
8 years ago

c.開始用bazel compile tensorflow
bazel build -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package
After use this command, I got this error.
no such package ‘@local_config_cuda//crosstool’: BUILD file not found on package path.
Do you know what is going on? Could you please help me fix it.

Darwin的AI天地
8 years ago

But I didn’t encounter this situation before.
Did you check evety step before go to next step?
Did you install bazel properly?

Nimo
Nimo
8 years ago

你好 我和一樓是同一個人
經過測試後可以成功編譯,也安裝正常,執行正常
我的方法是在 ./configure 這步驟"執行兩次"
location CUDA 8.0 & cuDNN 5這兩個選項
一次用預設的 /usr/local/cuda
另一次用 /usr/local/cuda-8.0
等到兩次全部資料都被 clone 後就能編譯了
我不曉得這樣處理是否正確,但是使用測試程式碼
結果有正常印出 gpu資訊
這邊留言給其他遇到同樣問題的人
BTW 我的設備是
OS: Win 8.1 + ubuntu 14.04 LTS 雙系統
GPU: Nvidia GeForce GTX 1070
CPU: intel i7 6700

Darwin的AI天地
8 years ago

好喔~感謝您的留言
不過您第一次弄 cuda-8.0 不對嘛?
用預設的話 我試過 他會說找不到吧??
cudnn 也是一樣的原理
我猜應該是你第一次沒讓他找到資料吧?

Nimo
Nimo
8 years ago

我是第一次使用 cuda 8.0
這台電腦重灌了好幾次 ubuntu,每次都是重灌完後安裝 cuda 8.0+cuDNN 5+tensorflow
我測試過
location CUDA 8.0 & cuDNN 5 使用 預設 /usr/local/cuda 編譯
no such package ‘local _config_cuda//crosstool’: BUILD file not found on package path.
再跑一次 location CUDA 8.0 & cuDNN 5 使用 /usr/local/cuda-8.0 再編譯就正常
之後我想知道為什麼, 又重灌一次 ubuntu
location CUDA 8.0 & cuDNN 5 使用 /usr/local/cuda-8.0 編譯
no such package ‘local _config_cuda//crosstool’: BUILD file not found on package path.
再跑一次 location CUDA 8.0 & cuDNN 5 使用 預設 /usr/local/cuda 再編譯又正常
不管順序如何,我兩個路徑都要執行讓他clone資訊才可以編譯
不曉得版主當初是如何設定的,從上面圖示看來是直接用ENTER預設路徑(/usr/local/cuda)
此外想問問版主當初安裝nVIDIA驅動時 sudo sh cuda_8.0.27_linux.run
是不是和我一樣的設定 http://imgur.com/ENOZtrM
版主回覆:(08/26/2016 09:14:03 AM)
這裡的cuda 位置 或者是cudnn 是要根據你安裝的版本
相關位置而做動態改變的喔
我這裡比較懶
沒有一步一步解說就直接貼圖了XD
等改天有空的時候再說的更詳細一點
是的 我這裡是直接用預設
因為你如果去資料夾仔細看的話
你會發現他會從cuda8.0複製一個同樣的資料到cuda中
是用ln 連結的 如果沒有這個資料夾應該是找不到的喔
應該是喔 大部份都一樣

rxliu
8 years ago

謝謝 超級感激!!

Darwin的AI天地
8 years ago

謝謝您的愛戴~
您的小小回覆
是我的大大動力~~

dylan
dylan
8 years ago

我是一個初學者 發現這邊有非常豐富的內容
以前有過寫C的經驗 但現在卡在一開始的環境建置
可以請版主分享一下你的系統, IDE之類的設定嗎
像我本來是想用windows 10+python+vim開始
但又發現tensorflow在linux的支援較好
可以請版主給一些建議嗎
謝謝
版主回覆:(12/03/2016 10:04:37 AM)
我的建議是用linux喔
tensorflow目前並沒有支援windows
我的Python IDE 是採用spyder喔
參照我的 Anaconda安裝那篇有介紹
另外python 的初學者建議可以到codeacademy 學習
加油喔~一起玩AI XD

小英
7 years ago

請問一下…為什麼需要bazel來安裝tensorflow呢? 官方的安裝方法好像沒有提到要用bazel
版主回覆:(03/17/2017 02:32:29 PM)
bazel 是給任意版本的人用的
因為官方提供的安裝包 是有限定cuda cudann版本的
如果像我當初新買一塊GPU 官方就沒提供那個cuda版本的
因此就要自己用bazel安裝
你可以先試試看官方提供的 你可不可以運行
如果可以的話就不用管bazel了

小英
7 years ago

謝謝版主回覆~~從你的文章收穫很多:)
版主回覆:(03/19/2017 11:35:12 PM)
不會~^.^
很高興幫助到你~~XD