tensorflow的主要編程語言是python线定,不過很多場(chǎng)景下會(huì)用到c/c++。
首先需要下載tensorflow源碼确买;
其次斤讥,編譯tensorflow需要用到Bazel,Bazel的安裝方法可參考:
https://docs.bazel.build/versions/master/install.html
下圖給出了ubuntu系統(tǒng)中的安裝方法:
最后湾趾,編譯源碼周偎,生成so庫文件:
進(jìn)入tensorflow_repo_path/tensorflow文件夾,執(zhí)行:
bazel build :libtensorflow.so
或者
bazel build :libtensorflow_cc.so
第一個(gè)是c版本撑帖,第二個(gè)是c++版本
編出來的庫如何使用蓉坎?
在使用tensorflow c/c++接口時(shí),會(huì)有很多頭文件依賴胡嘿、protobuf版本依賴等問題
(1)tensorflow/contrib/makefile目錄下蛉艾,找到build_all_xxx.sh文件并執(zhí)行,例如準(zhǔn)備在linux上使用衷敌,就執(zhí)行build_all_linux.sh文>件勿侯,成功后會(huì)出現(xiàn)一個(gè)gen文件夾
(2)把tensorflow和bazel-genfiles文件夾下的頭文件都抽取出來放在一個(gè)文件夾下面,或者通過cmake把這兩個(gè)路徑添加進(jìn)>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