tensorflow: c/c++庫,編譯和使用

tensorflow的主要編程語言是python,不過很多場景下會用到c/c++。

首先需要下載tensorflow源碼;

其次,編譯tensorflow需要用到Bazel,Bazel的安裝方法可參考:
https://docs.bazel.build/versions/master/install.html

下圖給出了ubuntu系統(tǒng)中的安裝方法:


最后,編譯源碼,生成so庫文件:

進入tensorflow_repo_path/tensorflow文件夾,執(zhí)行:
bazel build :libtensorflow.so
或者
bazel build :libtensorflow_cc.so
第一個是c版本,第二個是c++版本

編出來的庫如何使用?

在使用tensorflow c/c++接口時,會有很多頭文件依賴、protobuf版本依賴等問題
(1)tensorflow/contrib/makefile目錄下,找到build_all_xxx.sh文件并執(zhí)行,例如準備在linux上使用,就執(zhí)行build_all_linux.sh文>件,成功后會出現(xiàn)一個gen文件夾
(2)把tensorflow和bazel-genfiles文件夾下的頭文件都抽取出來放在一個文件夾下面,或者通過cmake把這兩個路徑添加進>include_directories中
(3)tensorflow/contrib/makefile/gen/protobuf/include,也就是(1)中生成的文件夾中的頭文件,也需要抽取或者在cmake中包>含在include_directories中

接下來就是寫代碼了,可以參考下面兩篇文章:

https://www.cnblogs.com/hrlnw/p/7383951.html
http://www.liuxiao.org/2018/08/ubuntu-tensorflow-c-%E4%BB%8E%E8%AE%AD%E7%BB%83%E5%88%B0%E9%A2%84%E6%B5%8B1%EF%BC%9A%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/

寫到最后,忽然想起,如果是NVIDIA的顯卡加速,為毛不用tensorrt呢? :(

https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html#c_topics

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容