linux 原始碼安裝 tensorflow C

2021-08-20 17:41:05 字數 2226 閱讀 1754

系統: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包會安裝在系統預設的位置,而原始碼包是手工...