去年十月份的时候尝试过配置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包的错误。

在Windows 10 Anniversary下配置Caffe的更多相关文章

  1. windows 10安装和配置caffe教程 | Install and Configure Caffe on windows 10

    本文首发于个人博客https://kezunlin.me/post/1739694c/,欢迎阅读! Install and Configure Caffe on windows 10 Part 1: ...

  2. Ubuntu17.10 下配置caffe 仅CPU i386可以直接apt install caffe-cpu,但是怎么运行mnist代码我懵逼了

    Ubuntu16.04下配置caffe(仅CPU)  参考:http://blog.csdn.net/zt_1995/article/details/56283249   第二次配置caffe环境,依 ...

  3. 20180726 - Windows 10 Pro 下远程桌面连接提示“出现身份验证错误”

    问题:Windows 10 Pro 下远程桌面连接提示“出现身份验证错误” [Window Title]远程桌面连接 [Content]出现身份验证错误.要求的函数不受支持 远程计算机: 192.16 ...

  4. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  5. windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速

    原文地址:http://www.jianshu.com/p/c245d46d43f0 写在前面的话 2016年11月29日,Google Brain 工程师团队宣布在 TensorFlow 0.12 ...

  6. opencv学习(1.2) - Windows 10 安装OpenCV &配置VS 2015

    windows 10 安装OpenCV&配置VS 2015 环境 系统:Windows 10 OpenCV版本:3.4.1 开发IDE:VS2015 社区版 下载安装 下载OpenCV 3.4 ...

  7. tensor搭建--windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速

    windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速 原文见于:http://www.jianshu.com/p/c245d46d43f0 ...

  8. 我的 Windows 10 的基本配置

    Windows 10 的基本配置 功能性 开启 .Net Framework 3.5(包括 .NET 2.0 和 3.0) 旧版本 Windows 10 默认只安装了 .Net Framework 4 ...

  9. 如何解决Windows 10系统下设备的声音问题

    如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在 ...

随机推荐

  1. at 定时任务

    每天一个linux命令(49):at命令   在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. ...

  2. 0115percona-toolkit安装教程

    一.percona-toolkit简介percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slav ...

  3. [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)

    Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...

  4. Android获取手机唯一码

    大部分安卓手机都可以获取手机唯一码,但是有些手机的厂商却禁止了获取手机唯一码的权限,导致我们不能使用手机唯一码作为标识,但遇到一些必须要填的坑,我们也不能不填,所以使用以下方法来填坑,因此我们使用UU ...

  5. iOS强制切换横屏、竖屏

    切换横竖屏最直接的方式是调用device的setOrientation方法.但是从sdk3.0以后,这个方法转为似有API,如果要上AppStore的话,要慎用! if ([[UIDevice cur ...

  6. 【转】50条大牛C++编程开发学习建议

    每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...

  7. SQLite高级:一库建多表,封装类

    package eoe.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; ...

  8. SQL数据库修复/数据库置疑修复

    SQL数据库修复的三大核心技术: 1.磁盘阵列分析重组技术: 2.数据库恢复与修复技术: 3.SCSI盘物理故障开盘技术. 至今已经成功恢复数百台服务器的SQL数据库,用户覆盖全国. 导致SQL数据库 ...

  9. PHP获取当前类名、函数名、方法名

    PHP获取当前类名.方法名  __CLASS__ 获取当前类名  __FUNCTION__ 当前函数名(confirm)  __METHOD__ 当前方法名 (bankcard::confirm) _ ...

  10. java判断是否为汉字

    java判断是否为汉字   public static boolean isChinese(String str) { String regEx = "[\u4e00-\u9fa5]&quo ...