[TensorFlow, C++, Visual Studio, Windows] TensorFlow C++ 如何編譯與解決BUG (How to build Tensorflow C++ API with Visual Studio and solve BUG)
主要環境 : Windows, TensorFlow, C++, Visual Studio
安裝流程簡單說一下,網路有很多資料,都差不多。
以下為我安裝的各版本,只能說版本真的很重要,要去看文件是否有相通,版本可看
版本對應查詢。
安裝流程簡單說一下,網路有很多資料,都差不多。
以下為我安裝的各版本,只能說版本真的很重要,要去看文件是否有相通,版本可看
版本對應查詢。
- TensorFlow v1.10
- Python v3.5
- Visual Studio v2015
- Cmake v3.12.0
- SWIG v3.0.12
- Git v2.20.1
首先先去Github下載對應的版本TensorFlow,記住不要錯...發生別的問題請自行解決。
接著CMake配置如圖,tensorflow的勾選部份自己斟酌吧,後來我有增加打勾tensorflow_GRPC_SUPPORT,網路上的人不推薦,這就看各位吧 :
接著Open Project,進入VS2015編譯,接著我只講我遇到的BUG與解法,沒遇過的別問我,我也不想碰到。
1.找不到 device_attributes.pb_text.h
個人解法:
2.找不到grpc/grpcpp.h
個人解法:
3.噴c_api.cc.obj有問題,從錯誤去看,看內容是有關WorkerCacheInterface之類的,我判斷是跟沒有弄到/tensorflow/core/distributed_runtime可能有些許關係,再往下查發現這跟grpc套件可能有關。
4.fatal error LNK1181: 無法打開輸入文件“\pywrap_tensorflow_internal.lib”
個人解法 :
心得 : 不得不使用TensorFlow的C++版,Python的效能大家也知道,因此鐵定要踩這個坑,網路上這方面的資料又不多又雜,有人說不要打勾GRPC_SUPPORT,因為很容易出錯,我就真的沒打勾,最後就是因為我沒打勾,噴了一堆錯,只能靠經驗一步一步解開,不得不說...自己又變厲害了,可喜可賀...
1.找不到 device_attributes.pb_text.h
個人解法:
- 工具
- 專案與方案
- 建置並執行
- 設置為1為平行專案組件的最大數目
2.找不到grpc/grpcpp.h
個人解法:
- 直接git clone https://github.com/grpc/grpc.git
- 將噴錯的專案右鍵"屬性"
- c/c++
- 其他include目錄
- 增加clone下載的grpc\include
3.噴c_api.cc.obj有問題,從錯誤去看,看內容是有關WorkerCacheInterface之類的,我判斷是跟沒有弄到/tensorflow/core/distributed_runtime可能有些許關係,再往下查發現這跟grpc套件可能有關。
- 因此我重新使用CMake
- 把tensorflow_ENABLE_GRPC_SUPPORT打勾
- 把解法二的include增加都拿掉
- 重新編譯
- 成功產生tensorflow.lib/dll
4.fatal error LNK1181: 無法打開輸入文件“\pywrap_tensorflow_internal.lib”
個人解法 :
- 將 _beam_search_ops、_gpu_ops、_lstm_ops、_nearest_neighbor_ops、_periodic_resample_op,以上五個專案右鍵"屬性"
- 連結器
- 一般
- 其他程式庫目錄
- 增加$(SolutionDir)$(Configuration);
- 最後會顯示$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories)
心得 : 不得不使用TensorFlow的C++版,Python的效能大家也知道,因此鐵定要踩這個坑,網路上這方面的資料又不多又雜,有人說不要打勾GRPC_SUPPORT,因為很容易出錯,我就真的沒打勾,最後就是因為我沒打勾,噴了一堆錯,只能靠經驗一步一步解開,不得不說...自己又變厲害了,可喜可賀...
留言
張貼留言