(MobileNet-SSD-windows-master编译说明)
一.需要准备的环境:
1. Win10操作系统 2. visual studio 2013/2015 3.CMake >= 3.4(注意添加 cmake 的 bin 路径到 Path 环境变量中,保证命令行可以找到 cmake.exe) 4. Python for the pycaffe interface. Anaconda Python 2.7 or 3.5 x64 (or Miniconda)8.0 (use CUDA 8 if using Visual Studio 2015) 5. cuDNN v5二.下载文件及修改配置并执行创建caffe文件(这一步很重要)
需要先下载文件,然后进行配置。
1、 下载文件
地址为地址为:https://github.com/eric612/MobileNet-SSD-windows,最好手动下载吧,这样稍微方便些。看见有的博文是通过命令下载,笔者刚刚接触所以就不在这里描述了。感兴趣的朋友可以参考其他的博文。
2、 配置build文件
通过caffe根目录找到并进入scripts文件夹后找到build_win.cmd并进行编辑。主要修改部分语句是从第7-31行,。70~99行之间,具体修改请通过下面步骤决定。
1) 修改7-31行的IF语句(if里面修改项描述,70~99行之间代码逻辑也要修改成一样的):
2) 修改70~99行之间
主要修改的项是:
1、修改为CPU计算训练 CPU_ONLY=1
2、修改对应的VS版本生成代码 MSVC_VERSION=14 // 2013的VS版本则修改为12 2015的VS版本则修改为14
3、修改编译方式,使用VS编译 不使用NinJa编译 WITH_NINJA=0 //这里一定要设为0。除非你想用ninja编译器来进行编译。
4、修改对应的python版本 PYTHON_VERSION=3 //2.7的python版本要修改为2 如果是3.5版本的python修改为3
5、修改python开发对应的Anaconda版本 //如第三项修改 PYTHON_VERSION 为3 的话将按照如下修改 安装的是python2.7的版本 那将修改EQU 2的。
对比可以发现 if和else里面的代码大同小异,但是却少了后面设置对应python中的Anaconda版本路径这几行代码。默认文件是没有这几行代码的,我们需要手动复制if里面修改玩的代码至else代码中,修改如下:
三、编译:
在win10下摁窗口+R键进入进入 windows cmd 命令行,执行如下操作:
C:\Projects> cd caffe //文件的路径,根据自己的需要进行配置
C:\Projects\caffe> scripts\build_win.cmd //找到文件下的build_win.cmd进行编译,执行完毕后,大约2到3分钟会出编译完成,在caffe目录下会有个build文件夹,里面是编译后的文件,可以直接用VS2015进行打开。运行build_win.cmd 等待几分钟,编译成功。然后返回caffe目录下找到python将Python下的caffe复制到系统python安装目录下Lib\site-packages里即可在python里使用caffe。
四、编译过程中的问题:
每次编译出现错误,把错误修改完了要删除 CAFFE目录下的build文件夹,可能会遇见如下错误:
1、 错误CMake Error: Error: generator : Visual Studio 15 2017 Win64
错误原因:找不到 WindowsSDK 版本8.1。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
解决办法:打开vs安装包,安装Windows SDK8.1
2、CMake Error at cmake/ WindowsDownloadPrebuiltDependencies.cmake:40(message):
Could not find url for MSVC version = 1910 and Python version = 2.7.
错误原因:WindowsDownloadPrebuiltDependencies.cmake文件需要修改相应的参数。。
解决办法:找到cmake文件夹下的WindowsDownloadPrebuiltDependencies.cmake文件,并以文本形式打开。在if(NOT DEFINEDDEPENDENCIES_URL_KaTeX parse error: Expected group after '_' at position 15: {MSVC_VERSION}_̲{_pyver})之后,message(FATAL_ERROR “Could not find url for MSVC version = ${MSVC_VERSION} and Python version =
P
Y
T
H
O
N
V
E
R
S
I
O
N
M
A
J
O
R
.
{PYTHON_VERSION_MAJOR}.
PYTHONVERSIONMAJOR.{PYTHON_VERSION_MINOR}.”)之前,增加set(MSVC_VERSION 1900)语句。保存,然后删除build文件下的内容,重新编译即可。