系統:ubuntu16.04
tensorflow1.4 cpu版本
g++: 5.4.0
bazel: 0.5.4
參考:
git clone
cd tensorflow
git checkout r1.4 # 切換到所要編譯的版本分支
2,安裝bazel
bazel的版本太高太低都會有問題,可以檢視tensorflow/tensorflow/docs_src/install/install_sources.md檔案中的版本需求。tf1.4版本對應的bazel版本是0.5.4。
安裝bazel0.5.4:推薦用installing using binary installer安裝
3,編譯tensorflow
3.1,進入tensorflow資料夾
./configure
按照提示都選n,參考
3.2,bazel編譯
bazel build --config=opt //tensorflow:libtensorflow_cc.so // 無顯示卡,cpu版本
bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so // 有顯示卡
4,其他依賴
在tensorflow/contrib/makefile下,執行build_all_linux.sh檔案,成功後會出現乙個gen資料夾。
如果tensorflow/contrib/makefile下沒有downloads資料夾,則回到tensorflow資料夾下,執行:
./tensorflow/contrib/makefile/download_dependencies.sh
如需eigen庫,則進入tensorflow/contrib/makefile/downloads/eigen,執行:
mkdir build
cd build
cmake ..
make
sudo make install
安裝完畢後,在usr/local/include目錄下會出現eigen3資料夾。
5,整理標頭檔案和so庫
兩個so庫在bazel-bin/tensorflow資料夾下libtensorflow_cc.so 和 libtensorflow_framework.so。
/tensorflow (只需tensorflow目錄下tensorflow和third_party兩個資料夾)
/tensorflow/bazel-genfiles
/tensorflow/tensorflow/contrib/makefile/downloads/nsync/public
/tensorflow/tensorflow/contrib/makefile/gen/protobuf/include
6,測試
參考在tensorflow-c-mnist中新建標頭檔案include資料夾和so庫資料夾lib,將第5步中的so庫和include資料夾分別copy到這兩個新建的lib和include資料夾下。
新建cmakelists.txt檔案
cmake_minimum_required (version 2.8.8)
project (tf_example)
set(cmake_cxx_flags "$ -g -std=c++11 -w")
link_directories(./lib)
include_directories(
include/tensorflow
include/bazel-genfiles
include/nsync-public
include/protobuf-inc
/usr/local/include/eigen3
)add_executable(tf_test tf.cpp)
target_link_libraries(tf_test tensorflow_cc tensorflow_framework)
然後編譯執行
linux 原始碼安裝
原始碼的安裝一般由3個步驟組成 配置 configure 編譯 make 安裝 make install 具體的安裝方法一般作者都會給出文件,這裡主要討論配置 configure configure是乙個可執行指令碼,它有很多選項,使用命令.configure help輸出詳細的選項列表,如下 ba...
linux原始碼安裝
原始碼的安裝一般由3個步驟組成 配置 configure 編譯 make 安裝 make install configure是乙個可執行指令碼,它有很多選項,在待安裝的原始碼路徑下使用命令.configure help輸出詳細的選項列表。其中 prefix選項是配置安裝的路徑,如果不配置該選項,安裝...
Linux 原始碼安裝
原始碼包是開源的,更自由,安裝更慢,容易出錯,可以定製功能,需要編譯rpm包安裝快,不自由,安裝方便,不易出錯,原始碼包由於安裝在固定的位置,所以和此軟體有關的內容都不在安裝目錄之下,但我們要刪除它時,能將所有東西全部刪除,很方便 具體的最直觀的不同 rpm包會安裝在系統預設的位置,而原始碼包是手工...