Ubuntu16.04系統Tensorflow源碼安裝


最近學習Tensorflow,記錄一下安裝過程。目前安裝的是CPU版的

1、下載tensorflow源碼

tensorflow是個開源庫,在github上有源碼,直接在上面下載。下載地址:https://github.com/tensorflow/tensorflow

2、安裝python的一些依賴庫

tensorflow支持C、C++和Python三種語言,但是它對Python的支持是最全面的,所以我們這里使用Python。Python的安裝這里就贅述了。我這里安裝的是python3,就以python3為例子了

sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel  

3、安裝bazel

Bazel是從谷歌開源的自動化構建工具,谷歌內部絕大部分的應用都是通過它來編譯的。

1)安裝JDK8

安裝Bazel,首先要安裝JDK8

sudo apt-get install software-properties-common  
sudo add-apt-repository ppa:webupd8team/java  
sudo apt-get update  
sudo apt-get install oracle-java8-installer  

2)安裝相關庫

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

注意:上面有一個是zlib1g-dev,不是zliblg-dev

3)下載bazel

下載網址為https://github.com/bazelbuild/bazel/releases,有多個版本,下載名字為bazel-<version>-installer-linux-x86_64.sh的。

4)運行安裝器

chmod +x bazel-<version>-installer-linux-x86_64.sh  
./bazel-<version>-installer-linux-x86_64.sh --user  

第一行是為了給該安裝器添加執行權限

第二行是執行該安裝器,后面的--user,表示把bazel安裝到了$HOME/bin目錄里面。

5)設置環境變量

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

上面提到把bazel安裝到了$HOME/bin目錄,這里是把該目錄添加到默認目錄里面了。在調用bazel的時候系統會到該目錄里查找bazel

4、配置tensorflow編譯環境

cd tensorflow  
chmod +x ./configure  
./configure  

進入之前下載的tensorflow源碼目錄內

給配置文件configure添加執行權限

執行configure文件

大部分都選的n,根據自己需要選擇

5、編譯pip安裝包

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package  
過程中遇到了一些錯誤

是在tensorflow文件中有些文件沒有執行權限,添加執行權限就可以了

chmod +x tensorflow/tools/pip_package/build_pip_package.sh  
然后重新編譯,后來在編譯過程中有遇到了類似的錯誤,編譯失敗。同樣是因為沒有執行權限的原因。這個忘記截圖了。為了防止后面出現同樣的錯誤,為整個文件夾都添加了執行權限。這個操作比較危險,不過無所謂了,反正安裝玩后要刪除這個文件夾的。

cd ../  
chmod –r +x ./tensorflow  
cd tensorflow  

做完這些后,重新在編譯,然后編譯成功。編譯了好長時間啊,大概要一個半小時左右。

 

6、生成pip安裝包.whl文件

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

 

如上圖中,安裝包名字為 tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl

7、用pip安裝pip安裝生成的安裝包

sudo pip3 install tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl  

8、測試是否安裝成功

Tips:在測試過程中,可能會出現如下錯誤:

 

不要着急,這個一般是因為當前目錄下面有一個名字為tensorflow的文件,在導入的是后python會先當前目錄的。就是把那個名字問tensorflow的文件當成了tensorflow模塊所以會出錯。換個名字或者放到其他目錄就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM