caffe2 windows安装

转载自:https://blog.csdn.net/zsyddl2/article/details/80726200,稍作修改。

首先下载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使用广泛了, 路还很长。

你可能感兴趣的:(深度学习)