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