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
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)
參考資料:
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.
But I didn’t encounter this situation before.
Did you check evety step before go to next step?
Did you install bazel properly?
你好 我和一樓是同一個人
經過測試後可以成功編譯,也安裝正常,執行正常
我的方法是在 ./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
好喔~感謝您的留言
不過您第一次弄 cuda-8.0 不對嘛?
用預設的話 我試過 他會說找不到吧??
cudnn 也是一樣的原理
我猜應該是你第一次沒讓他找到資料吧?
我是第一次使用 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 連結的 如果沒有這個資料夾應該是找不到的喔
應該是喔 大部份都一樣
謝謝 超級感激!!
謝謝您的愛戴~
您的小小回覆
是我的大大動力~~
我是一個初學者 發現這邊有非常豐富的內容
以前有過寫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
請問一下…為什麼需要bazel來安裝tensorflow呢? 官方的安裝方法好像沒有提到要用bazel
版主回覆:(03/17/2017 02:32:29 PM)
bazel 是給任意版本的人用的
因為官方提供的安裝包 是有限定cuda cudann版本的
如果像我當初新買一塊GPU 官方就沒提供那個cuda版本的
因此就要自己用bazel安裝
你可以先試試看官方提供的 你可不可以運行
如果可以的話就不用管bazel了
謝謝版主回覆~~從你的文章收穫很多:)
版主回覆:(03/19/2017 11:35:12 PM)
不會~^.^
很高興幫助到你~~XD