TensorFlow源碼安裝

前言

TensorFlow若是能二進制包安裝,我真的不想選擇本身編譯,可是狀況不禁人,好不容易找到一臺服務器,CPU不支持AVX指令集,安裝的release版本運行到import tensorflow as tf 就會報指令異常。網上建議源碼安裝才能解決,因而無奈,想着應該是很是繁瑣的事情,但事實上除了耗時外,其餘都還好,這裏記錄一下,以備後用。python

編譯安裝過程

安裝版本構建工具 bazel

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

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

這個步驟沒有碰到問題。git

安裝工具包

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

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

下載TensorFlow源碼

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

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

比較耗時的操做,文件比較多。工具

配置TensorFlow

進入tensorflow目錄,而後執行./configure,開始配置,除了jemalloc選項外,我都選了Nui

編譯TensorFlow

執行如下命令,啓動編譯,過程很是慢,要耐心等待:google

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

建立PIP安裝包

完成編譯後,將tensowflow製做成pip安裝包:spa

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過程所有結束,暫無發現問題,待後續有問題時再補充。

相關文章
相關標籤/搜索