天天看點

《面向機器智能的TensorFlow實踐》一2.5 源碼建構及安裝執行個體:在64位Ubuntu Linux上安裝GPU版TensorFlow

本節書摘來自華章出版社《面向機器智能的tensorflow實踐》一書中的第2章,第2.5節,作者 山姆·亞伯拉罕(sam abrahams)丹尼亞爾·哈夫納(danijar hafner)[美] 埃裡克·厄威特(erik erwitt)阿裡爾·斯卡爾皮内裡(ariel scarpinelli),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

2.5 源碼建構及安裝執行個體:在64位ubuntu linux上安裝gpu版tensorflow

如果希望使用帶有gpu支援的tensorflow,那麼最可能的選擇是從源碼建構和安裝。本節給出了一個完整的安裝參考執行個體,詳細介紹了安裝和運作tensorflow所需的每一具體步驟。請注意,本示例中的作業系統為64位ubuntu linux發行版,是以如果你使用的是其他linux發行版,則可能需要對某些指令進行修改(如apt-get)。如果希望在mac os x上從源碼建構tensorflow,筆者推薦tensorflow官網的安裝指南:

https://www.tensorflow.org/versions/master/get_started/

os_setup.html#installation-for-mac-os-x

2.5.1 安裝依賴庫

這裡假定你已安裝了python-pip、python-dev和python-virtualenv。

建構tensorflow需要事先安裝少量依賴庫。按照所安裝的python版本,執行下列指令:

1. python 2.7

2. python 3

2.5.2 安裝bazel

bazel是一款基于谷歌内部軟體的開源建構工具。在本書寫作之時,為從源碼建構tensorflow,需要bazel,是以我們必須自行安裝該軟體。bazel官網中有一份非常完整的安裝指南,本節隻介紹一些最基本的步驟。

第一件事是確定系統中已安裝java development kit 8(jdk 8)。下列指令會将oracle jdk

8代碼庫添加到apt源中,然後進行安裝:

對于ubuntu 15.10版及後續版本,也可安裝oracle jdk的替代軟體openjdk 8。安裝後者更為容易,也是筆者所推薦的,可使用下列指令在系統中安裝openjdk:

在繼續下一步之前,請驗證java已被正确安裝:

java安裝完畢後,還需要安裝少量其他依賴庫:

接下來,需要下載下傳bazel安裝腳本。為此,既可前往github上的bazel發行頁面,也可使用下列wget指令。請注意,對于ubuntu系統,需要下載下傳“bazel-xxx-installer-linux-x86_64.sh”:

# 下載下傳bazel 0.3.0

最後,将所下載下傳的安裝腳本的權限修改為可執行的,并運作它:

通過使用--user選項,bazel将被安裝到$home/bin目錄。為確定該路徑被添加到環境變量path中,可通過下列指令對~/.bashrc進行更新:

重新開機bash終端,并運作bazel,以確定一切可正常工作:

非常棒!接下來,需要安裝一些能夠支援gpu運算的依賴軟體。

2.5.3 安裝cuda軟體(僅限nvidia gpu)

如果擁有一款支援cuda的nvidia gpu,則可安裝帶有gpu支援的tensorflow。支援cuda的顯示卡清單可從下列網址擷取:

https://developer.nvidia.com/cuda-gpus

除了確定你的gpu榜上有名,還需注意與顯示卡“計算能力(compute

capability)”有關的量化數字。例如,geforce

gtx 1080的計算能力為6.1,而geforce gtx titan x的計算能力為5.2。在編譯tensorflow時需要用到這個數字。在确定可利用cuda後,要做的第一件事便是注冊nvidia的“accelerated computer developer program”。為了下載下傳安裝cuda和cudnn所需的所有檔案,這個步驟是必需的。注冊連結如下:

https://developer.nvidia.com/accelerated-computing-developer

當注冊完成後,你會希望下載下傳cuda。前往下列連結,并使用如下操作指南:

https://developer.nvidia.com/cuda-downloads

1)在“select target platform(選擇目标平台)”下方,選擇下列選項:

linux

x86_64

ubuntu

14.04/15.04

deb(本地)

2)單擊“download(下載下傳)”按鈕,将安裝檔案儲存在你的計算機中。該檔案體積較大,是以完成下載下傳可能需要一段較長的時間。

3)導航至包含所下載下傳的安裝檔案的目錄,并運作下列指令:

上述指令執行完畢後, cuda将被安裝到/usr/local/cuda目錄下。

接下來,需要下載下傳cudnn,它是一款專為深度神經網絡設計的基于cuda的加速庫。單擊如下頁面的“download”按鈕:

https://developer.nvidia.com/cudnn

用在前面建立的賬号登入後,将看到一份簡短的調查問卷。完成問卷後,可通過單擊問卷下方的按鈕進入下載下傳頁面。單擊“i agree to the terms...”以接受下載下傳許可協定。由于前面安裝的是cuda 7.5,是以需要下載下傳cudnn for cuda 7.5(本書寫作之時,筆者使用的是cudnn v5.0)。

單擊“download cudnn v5 for cuda 7.5”,将下載下傳選項展開。

單擊“cudnn v5 library for linux”,下載下傳經過壓縮的cudnn檔案。

導航至下載下傳好的.tgz檔案,運作下列指令,将必要的檔案複制到/usr/local/cuda目錄下:

以上便是安裝cuda所需的所有步驟。由于所有依賴庫都已細心安裝,接下來便可安裝tensorflow了。

2.5.4 從源碼建構和安裝tensorflow

首先需要克隆github上的tensorflow代碼庫,然後進入其所在目錄:

進入上述目錄後,運作./configure腳本,将所使用的編譯器、cuda版本等資訊通知給bazel。請確定已記錄顯示卡的“計算能力”數字(上文中已介紹過):

# 注意:若使用python 3,需要指定為/usr/bin/python3

google cloud

platform支援目前正處于封閉alpha測試階段。如果能夠通路該程式,可在回答google cloud platform支援問題時選擇y(yes)。

配置完成後,便可利用bazel建立一個用于建立python二進制檔案的可執行程式:

執行上述指令需要相當長的一段時間,具體時長取決于你的計算機性能。待bazel完成上述任務後,運作輸出的可執行程式,并傳入一個表示python wheel檔案存儲路徑的參數:

上述指令将在~/tensorflow/bin下建立一個python.whl檔案。請確定你的“tensor-flow”virtualenv環境處于活動狀态,然後用pip安裝該wheel檔案(請注意該二進制檔案的具體名稱會依所安裝的tensorflow版本、所使用的作業系統和python版本而不同):

如果你擁有多台硬體配置類似的機器,則可使用該wheel檔案在這些機器上實作tensorflow的快速安裝。

至此,tensorflow便安裝完畢!最後介紹如何安裝jupyter notebook和matplotlib。