windows、visual studio 2015上编译Caffe2
程序员文章站
2022-06-17 08:53:21
...
windows、visual studio 2015上编译Caffe2
一、软件准备
- Windows 10 64位;
- Visual studio 2015 64位;
- CUDA v9.2;
- cuDNN v7.4.2 for CUDA 9.2;
- OpenCV 3.4.1;
- Python2.7;
- pip;
- Conda(在属性中获取所有权限)。
二、CMD窗口安装模块
以管理员身份打开CMD窗口,执行如下命令:
pip install future ^
hypothesis ^
numpy ^
protobuf ^
six ^
flask ^
glog ^
graphviz ^
jupyter ^
matplotlib ^
pydot python-nvd3 ^
pyyaml ^
requests ^
scikit-image ^
scipy ^
setuptools ^
tornado ^
lmdb
编译过程中如果出现缺少某个模块,例如提示缺少lmdb,则用conda install lmdb再安装一次。
三、增加/修改环境变量
- 根据FindLMDB.cmake中的find_path(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS “ENV{LMDB_DIR}/lib” ),设置include和lib文件夹所在目录为LMDB_DIR:
LMDB_DIR C:\Tools\vcpkg\packages\lmdb_x64-windows - 找到电脑中Release版本Opencv的OpenCVConfig.cmake所在目录,设置为OpenCV_DIR:
OpenCV_DIR C:\Tools\vcpkg\buildtrees\opencv\x64-windows-rel - 设置PYTHONPATH:
PYTHONPATH CAFFE2_ROOT\build - 增加PATH:
C:\Python27;
C:\Python27\bin;
C:\Python27\DLLs;
C:\Python27\Scripts;
C:\ProgramData\Anaconda2;
C:\ProgramData\Anaconda2\bin;
C:\ProgramData\Anaconda2\DLLs ;
C:\ProgramData\Anaconda2\Scripts;
C:\Tools\vcpkg\buildtrees\opencv\x64-windows-rel\bin。 - 重新启动电脑。
四、修改build_host_protoc.bat
设置编译Release版本,设置VS2015为编译生成器。
set CMAKE_BUILD_TYPE=Release
set CMAKE_GENERATOR="Visual Studio 14 2015 Win64"
五、修改build_windows.bat
设置编译Release版本,设置VS2015为编译生成器,选中CUDA、LMDB、OPENCV和PYTHON作为一同编译项目。
set USE_CUDA=ON
set CMAKE_BUILD_TYPE=Release
set CMAKE_GENERATOR="Visual Studio 14 2015 Win64"
-DUSE_CUDA=%USE_CUDA% ^
-DCUDA_GENERATION=Pascal ^
-DUSE_NNPACK=OFF ^
-DUSE_GLOG=OFF ^
-DUSE_GFLAGS=OFF ^
-DUSE_LMDB=ON ^
-DUSE_LEVELDB=OFF ^
-DUSE_ROCKSDB=OFF ^
-DUSE_OPENCV=ON ^
-DBUILD_SHARED_LIBS=OFF ^
-DBUILD_PYTHON=ON
六、修改Cuda.cmake
增加对CUDA9.2的编译支持。
# set(Caffe2_known_gpu_archs9 "30 35 50 52 60 61 70 71") # for CUDA 9.x, not supported yet
set(Caffe2_known_gpu_archs9 "30 35 50 52 60 61") # for CUDA 9.x, not supported yet
if (${CUDA_VERSION} LESS 7.0)
message(FATAL_ERROR "Caffe2 requires CUDA 7.0 or later version")
elseif (${CUDA_VERSION} LESS 8.0) # CUDA 7.x
set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs7})
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
elseif (${CUDA_VERSION} LESS 9.0) # CUDA 8.x
set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs8})
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
# CUDA 8 may complain that sm_20 is no longer supported. Suppress the
# warning for now.
list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
elseif (${CUDA_VERSION} EQUAL 9.0) # CUDA 9.0
set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs9})
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
elseif (${CUDA_VERSION} GREATER 9.0) # CUDA 9.x
set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs9})
list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
endif()
七、CMD窗口编译
以管理员身份打开cmd窗口,切换到caffe2/src/scripts目录,先执行build_host_protoc.bat,再执行build_windows.bat(需一个小时)。
八、VS编译
CMD窗口编译成功后,以管理员身份打开visual studio 2015,打开caffe2/src/build/Caffe2.sln,切换到Release模式,先rebuild ALL(需一个小时),再rebuild Install(需一个小时),此时在C:\Program Files中可以看到Caffe2文件夹。
九、拷贝
- 拷贝caffe2\src\build\caffe2\python\Release目录下的caffe2_pybind11_state.pyd及该文件夹下的所有项目到C:\Python27\DLLs和C:\ProgramData\Anaconda2\DLLs;
- 拷贝caffe2/src/build目录下的caffe和caffe2文件夹到C:\Python27\Lib和C:\ProgramData\Anaconda2\Lib。
十、运行MNIST.PY检验
- 下载Caffe2的tutorial:https://github.com/caffe2/tutorials;
- 打开tutorial下的MNIST.PY,点击save_db函数找到其定义文件predictor_exporter.py和predictor_py_utils;
- 修改predictor_exporter.py:
#ws = ws or workspace.C.Workspace.current
ws = ws or workspace - 修改predictor_py_utils.py:
#shape = ws.blobs[blob].fetch().shape
shape = ws.FetchBlob(blob).shape - 执行MNIST.PY,如果流程完全正确则Caffe2编译成功。
上一篇: MySQL数据库部署linux参数调整
下一篇: 弹性布局flex 介绍
推荐阅读
-
windows server 2012 R2 如何安装visual studio 2015旗舰版
-
Visual Studio 2015的坑:中文字符串编译后成乱码
-
Visual Studio 2015 编译gflags(已验证)
-
windows下使用Visual Studio编译可以调试的FFmpeg
-
Windows 使用 Visual Studio 编译 caffe
-
剖析并利用Visual Studio Code在Mac上编译、调试c#程序
-
基于visual studio 2017在Windows平台下编译FFmpeg
-
windows10 使用visual studio 2019编译OpenBLAS
-
CZMQ 在windows下编译,visual studio 2015 为例
-
windows、visual studio 2015上编译Caffe2