TensorFlow源碼安裝


前言

TensorFlow如果能二進制包安裝,我真的不想選擇自己編譯,但是情況不由人,好不容易找到一台服務器,CPU不支持AVX指令集,安裝的release版本運行到import tensorflow as tf 就會報指令異常。網上建議源碼安裝才能解決,於是無奈,想着應該是非常繁瑣的事情,但事實上除了耗時外,其他都還好,這里記錄一下,以備后用。

編譯安裝過程

安裝版本構建工具 bazel

bazel是google的版本構建工具,網上褒貶不一,直接下載安裝包進行安裝:

wget https://github.com/bazelbuild/bazel/releases/download/0.13.0/bazel-0.13.0-installer-linux-x86_64.sh
chmod +x ./bazel-0.13.0-installer-linux-x86_64.sh
./bazel-0.13.0-installer-linux-x86_64.sh

這個步驟沒有碰到問題。

安裝工具包

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

numpy是python的科學計算庫,swig是C庫外部語言封裝調用接口庫,后面幾個應該與python包管理相關,不細究。

下載TensorFlow源碼

使用git來克隆TensorFlow代碼倉庫:

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

比較耗時的操作,文件比較多。

配置TensorFlow

進入tensorflow目錄,然后執行./configure,開始配置,除了jemalloc選項外,我都選了N

編譯TensorFlow

執行以下命令,啟動編譯,過程非常慢,要耐心等待:

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

創建PIP安裝包

完成編譯后,將tensowflow制作成pip安裝包:

bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/

安裝TensorFlow包

最后,通過pip命令來安裝前一步生成的安裝包,如果沒有先安裝python-pip:

pip install ~/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl 

增加編譯選型以支持額外CPU指令

自己編譯的版本可以正常使用,但運行時出現了如下的命令行提示:

原來這款CPU雖然不支持AVX,但是支持SSE,於是決定重新編譯,在編譯時增加了額外的編譯選項,如下:

build -c opt --copt=-msse4.1 --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package

重新打包,安裝。

暫時結束

 至此,整個源碼安裝TensorFlow過程全部結束,暫無發現問題,待后續有問題時再補充。

 


免責聲明!

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



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