1. 程式人生 > >caffe2 windows安裝

caffe2 windows安裝

首先下載caffe2的原始碼:

 git clone --recursive https://github.com/caffe2/caffe2.git

 這樣下來的肯定是編譯不過的。這個坑足夠大,大到你的跪了。這個情況下,主要是 third_party目錄是空的。從git執行命令看,運行了xxx分鐘,各種third庫看上去都進度100%實際看,目錄為空的。這是誰在來逗我玩了?(是老天派來逗我的)。

   修復:

將命令:

git clone https://github.com/ARM-software/ComputeLibrary.git
git clone https://github.com/Maratyszcza/FP16.git
git clone https://github.com/Maratyszcza/FXdiv.git 
git clone https://github.com/Maratyszcza/NNPACK.git 
git clone https://github.com/zdevito/aten 
git clone https://github.com/google/benchmark.git 
git clone https://github.com/Maratyszcza/cpuinfo.git 
git clone https://github.com/NVlabs/cub.git 
git clone https://github.com/RLovelett/eigen.git 
git clone https://github.com/facebookincubator/gloo 
git clone https://github.com/google/googletest.git 
git clone https://github.com/Yangqing/ios-cmake.git 
git clone https://github.com/nvidia/nccl.git 
git clone https://github.com/NervanaSystems/nervanagpu.git 
git clone https://github.com/onnx/onnx.git 
git clone https://github.com/google/protobuf.git 
git clone https://github.com/Maratyszcza/psimd.git 
git clone https://github.com/Maratyszcza/pthreadpool.git 
git clone https://github.com/pybind/pybind11.git 
git clone https://github.com/PeachPy/enum34.git 
git clone https://github.com/Maratyszcza/PeachPy.git 
git clone https://github.com/benjaminp/six.git 
git clone https://github.com/facebook/zstd.git

 儲存到caffe2\third_party 目錄 third_party.bat檔案。再cmd 中 cd到 caffe2\third_party目錄,執行 caffe2\third_partythird_party.bat,這下進度有,檔案也有了。 如果eigen 沒有,可以到baidu 到官網下載。

 2、回到caffe2\scripts目錄,用命令列或者powershell執行build_host_protoc.sh。執行,build_windows.bat . 這樣會在 caffe2\build目錄生成 .sln檔案 這樣可以vs編譯。

 3、不過話到這裡,還是有坑。預設生成是lib靜態庫。debug會有大於2G,release 也有300M以上。老天,再次要來逗樂?

 4、可以通過cmake 開啟 這個build目錄。選中一個選項,build_shared_libs, 這樣再點選生成工程。工程中就是 dll 屬性了。

      不過目前這樣仍然編譯不過。稍等後續修復再補上。

 這編譯就是一個蛛絲一樣,來回穿插的感覺。。。有沒有爽到要死?

5: 修改如下內容。可以編譯。但是連結,失敗,提示庫超過65535個物件。看來要dll走過去不太可能了。
1)

include\unistd.h 檔案補充
並定義#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2

2)
\cpuinfo\src\log.h 

#ifdef _WIN32
#define CLOG_DEFINE_LOG_DEBUG
#define CLOG_DEFINE_LOG_INFO
#define CLOG_DEFINE_LOG_WARNING
#define  CLOG_DEFINE_LOG_ERROR
#define CLOG_DEFINE_LOG_FATAL
#endif
#ifdef _WIN32
#else
CLOG_DEFINE_LOG_DEBUG(cpuinfo_, "cpuinfo", CPUINFO_LOG_LEVEL);
CLOG_DEFINE_LOG_INFO(cpuinfo_, "cpuinfo", CPUINFO_LOG_LEVEL);
CLOG_DEFINE_LOG_WARNING(cpuinfo_, "cpuinfo", CPUINFO_LOG_LEVEL);
CLOG_DEFINE_LOG_ERROR(cpuinfo_, "cpuinfo", CPUINFO_LOG_LEVEL);
CLOG_DEFINE_LOG_FATAL(cpuinfo_, "cpuinfo", CPUINFO_LOG_LEVEL);
#endif

3 project 屬性 警告視為錯誤 修改為否

4 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”

  是因為庫為 debug ,當前為release

2018-6-23 結論: 雖然可以編譯通過。但是使用demo 有各種坑。不太適合應用生產環境。畢竟才一年多,不如caffe使用廣泛了, 路還很長。