開源框架---通過Bazel編譯使用tensorflow c++ API 記錄
tensorflow python API,在python中借用pip安裝tensorflow,真的很方便,幾句指令就完成了。
tensorflow c++ API,通過Bazel編譯tensorflow源碼方式接通C++接口,配了好幾天,終於順利結束。第一次這么配置,真的是一路踩坑,不斷的解決,已經忘了如何一步步完成的。就是遇到問題就解決,奮力爬出坑。總結不順利的幾點原因:
1,版本問題。不兼容,或高或低。tf + protobuf + bazel + python + numpy +... 哪個版本都需要兼容才能順利向下進行。重復着裝里卸載,卸載了重裝,匹配為止。
比如,一句簡單的指令安裝bazel是最新版本,與之前安裝好的tf版本不對應,卸載,下載低版本的 bazel安裝包,95M+ 官網本機下載好慢好慢,1~2h過去了,可能還沒什么大的進展。后來通過花*幣買的。其他,深印象的下載,太多了,....
2,網絡問題。有的需要google源,依賴項會因為網絡不穩、無法翻牆、....等網絡原因,出現不同的情況,速度慢還報錯。有的資源下載一半,卡了...
比如,tensorflow/contrib/makefile/downloads/eigen...這個就下載了很久,一下午... 或下載的不全獲有問題...
第一次,嘗試這種源碼方式安裝tf,耗時3天+終於通了。

--------------------------------------------------------------------------------------------------------------------
下文轉載,也遇到與該作者一樣的問題。當時自己一頓摸索,踩了很多坑,最后不是這么簡單解決的,但是都是發現缺什么想招解決的。作者解決的簡便、還好。感謝!
記得,當時我應該是下載缺失的文件,單獨安裝,然后在CMakelists.txt中在添加路徑。
--------------------------------------------------------------------------------------------------------------------
(1)、nsync_cv.h文件缺失:
這個文件一般是會在tensorflow/contrib/makefile/downloads/nsync/public這個文件夾下的,但是我這邊是編譯tensorflow的時候有些依賴文件沒有下載到導致它缺失,解決方法是存在/tensorflow/contrib/makefile/download_dependencies.sh這個文件,執行它來下載相關的文件,相關文件會放在/home/zcx/tensorflow-r1.7/tensorflow/contrib/makefile/downloads這個文件夾下;
(2)、提示Eigen相關的問題
這個問題跟前面的類似,如果下載了相關的依賴文件之后,在/tensorflow-r1.7/tensorflow/contrib/makefile/downloads文件夾下找到eigen文件夾,進入之后執行以下指令進行eigen的編譯:
mkdir build
cd build
cmake ..
make
sudo make install
(3)、提示關於protobuf版本的問題
問題如下:

這個主要是protobuf版本的問題,所以要查看bazel-genfiles/tensorflow/core/framework/types.pb.h這個文件夾中關於protobuf的版本要求,然后下載相應的版本來更新即可,這里tensorflow1.12要求是protobuf要大於等於3.6:

所以就去github上下載對應的protobuf版本。要下載源碼,然后編譯安裝即可。
@https://blog.csdn.net/yz2zcx/article/details/83153588
