在Windows 10 Anniversary下配置Caffe

去年十月份的时候尝试过配置caffe,真的是恶心到家,当时用的还是微软魔改的基于NuGet的caffe。现在这个项目退役了,接手的是原项目下的windows分支,虽然并不是很成熟,但是依然非常推荐在Win下疯狂受苦的各位试试。

先说明一下,目前(2017-01-24)由于各种原因,使用Visual Studio 2017 RC进行编译会引致各种各样的问题(从CMake到CUDA,没什么东西是能用的),因此不要轻易尝试,有兴趣的话可以看看这里

使用预编译的二进制包

非常直接了当的做法,不需要编译配置直接可用,算是救命了。在分支首页能找到。

从Git开始

确保系统中安装了Git或者Github客户端。进入Powershell(我比较喜欢用这个,CMD也可以),cd到在平时放置项目的地方执行:

git clone https://github.com/BVLC/caffe.git
cd caffe
git checkout windows

使用文本编辑器打开scripts/build_win.cmd,根据注释的指引进行修改:开启cuDNN、启用Matlab生成之类的。修改完成之后,在Powershell中执行

./scripts/build_win.cmd

在接下来的一段时间内,脚本文件会在背景下载所依赖的库。不知道为什么经常下载失败,速度还特别慢,总之建议爬上梯子说话。

下载完成之后会开始解压文档,自动生成的build目录中如果出现了libraries文件夹那就说明至少下载成功了。这个时候注意,一定要把build_win.cmd中的以下部分(大约在118行)删除或者注释掉,否则在下一次执行build_win.cmd的时候,脚本会重新下载依赖库。谁能保证之后不出差错呢?

:: Create build directory and configure cmake
if EXIST build (
    echo ERROR: build directory already exists in %cd%\build please remove it and start over.
    exit /b 1
)

mkdir build
pushd build

:: Download dependencies from VS x64
echo INFO: Downloading dependencies
"%PYTHON_EXE%" "%~dp0\download_prebuilt_dependencies.py" --msvc_version v%MSVC_VERSION%0

if ERRORLEVEL 1 (
    echo ERROR: Downloading dependencies failed
    exit /b 1
)

如果脚本自动开始编译了那么说明依赖库中文件没有问题,将libraries/liblibraries/bin以及libraries\x64\vc14\bin文件夹加入Path环境变量。如果没有加入,在Matlab中调用caffe会出现形如Invalid MEX-file 'P:\caffe\matlab\+caffe\private\caffe_.mexw64': 找不到指定的模块。的错误。

有个非常奇怪的情况,在我安装caffe的时候,build_win.cmd自动进行的install并没有起作用,所以在成功生成项目文件之后最好Ctrl-C停止命令行编译,进入VS手工生成ALL_BUILD项目,随后生成INSTALL项目。

如果开启了Python生成,注意确认所依赖的Python包是否已经安装。我使用的是发行版Anaconda 3.5,如果脚本没有自动帮你安装,输出提示有关'Python'、'Dependency'、'Ignore'的字样,使用如下指令安装所需要的软件包,否则会跳过Python接口的生成。

conda install --yes numpy scipy matplotlib scikit-image pip six
conda install --yes --channel willyd protobuf==3.1.0

如果开启了MATLAB生成,可能会遇到MSB3073错误,这是脚本没有找到生成的mex文件导致的,进入matlab/+caffe/private中,进入刚才编译使用的配置(Debug或Release),将caffe_.mexw64复制一份到外面的private文件夹里。再次生成INSTALL项目应该就能够通过了。

生成成功后在环境变量中加入PYTHONPATH,填入值build/install/python,在Matlab中添加搜索路径build/install/matlab和build/matlab。建议前者优先级高于后者,前者可以不用加,因为刚才已经把caffe_.mexw64移进private了。要是出现了什么诡异的问题可以再考虑加回来。

最后特别要注意的是,Protobuf一定要自己编译一份,因为Python需要执行Protobuf项目的python/setup.py才能完成配置,否则会出现找不到google包的错误。

转载于:https://www.cnblogs.com/penguinliong/p/6347960.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值