caffe python接口_Windows7 64下搭建Caffe+python接口环境

参考链接:

http://www.cnblogs.com/yixuan-xu/p/5858595.html

http://www.cnblogs.com/zf-blog/p/6139044.html

http://blog.csdn.net/zb1165048017/article/details/51355143?locationNum=6&fps=1 http://blog.csdn.net/zb1165048017/article/details/52980102

搭建一个完整的运行环境,不出错是很难的。尤其是对于我这样的小白。上面是我为搭建此环境参考的前辈博客链接。

这里做下总结,Windows7 64下搭建Caffe+python接口环境。(有些资源是前辈博客里的)

1.软件

Caffe下载链接(caffe-master):

https://github.com/Microsoft/caffe

百度云下载:http://pan.baidu.com/s/1hs8ngpA 密码:ith0

微软的Windows三方包(Nuget程序包):http://pan.baidu.com/s/1pKQKJJP 密码:2vzy

VS2013安装包链接:http://pan.baidu.com/s/1dF5OTWH 密码:16fn

anaconda2下载: 官网下载 https://repo.continuum.io/archive/Anaconda2-4.2.0-Windows-x86_64.exe

(千万要下载支持python2.7的anaconda2,不然后面会遇到找不到python27.lib,折腾了我一下午时间)

2.软件下载完成之后,开始一步一步来搭建环境。

(1)首先解压caffe-master.zip压缩包,打开caffe-master文件夹。在windows文件夹下复制CommonSettings.props.example文件,

重命名为CommonSettings.props文件。

e5b8900349aefa34317ada70d370890f.png

(2)在windows文件夹下找到Caffe.sln,并用VS2013打开->项目/解决方案。

在CommonSettings.props文件中修改相应内容:(下面Python路径一定要改为anaconda2的路径,图片中是anaconda3路径)

8895f64fc7bfb3fac64e460fa11bcba5.png

0e365ea3e0e04380c6d7a45afd17366b.png

由于PC只有CPU没有GPU,修改第7、8行;想要支持Python接口,修改第13行,并添加Python路径,修改第48行

打开Caffe.sln出现了libcaffe和test_all加载失败。出现这个情况,原因可能和更改配置有关系,就将项目/解决方案关闭,重新打开就好了。

f40264ffaa6790b34071912b0dcac108.png

(3)配置文件修改好后,可以编译Caffe了。(有两种Debug和Release活动配置,都可以编译)

f6b789411d02e79050741569c3fa88c8.png

0a1ad4877fd608c099e40921561e4cd1.png

这时,可能会弹出一个对话框,表示正在下载第三方包。

也可以这么做,在编译之前直接将NugetPackages文件夹(由于我们已经下载好NugetPackages),放在与Caffe-Master并列文件夹中。下载完成后,如图。

6759358b805ac63800739feecbb0e0f2.png

(4)设置一下运行项。

80f2686916b1617654867967dccab97e.png

17727c59140320b9b7987bdd60b5c2c9.png

(5)运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+F5直接编译。出现如下命令窗口说明编译成功。

608cb90b4e5c2aa777828b4aa7187104.png

90686c39de9aba5e328d3c6d75ac5fed.png

3.用Caffe来测试mnist数据集

(1)去官网http://yann.lecun.com/exdb/mnist/下载数据集。将图里的数据都下载下来,备用。

d14c496f94834c5ec3a0f78bf3a1e550.png

下载后解压到.\caffe-master\data\mnist放在两个文件夹下。

5777c3211e62b87a2d7b6c9e1d8aa3d0.png

eab2f936173fc4d6d730db1b5a8e5106.png

(2)在caffe-master目录下,新建一个create_mnist.bat文件,写入下面代码:

.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte .\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb

echo.

.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte .\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb

pause

双击该脚本运行,会在.\caffe-master\examples\mnist下生成相应的lmdb数据文件。

58daf3f8e3d14ef469f33c78ace4cd31.png

127ccbada83741d5788fff6f059524be.png

可能会遇到这个问题:

convert_mnist_data.cpp:103] Check failed: mdb_env_open(mdb_env, db_path, 0, 0664) == 0 (112 vs. 0) mdb_env_open failed

解决:在convert_mnist_data.cpp第103行代码中

CHECK_EQ(mdb_env_set_mapsize(mdb_env, 1099511627776), MDB_SUCCESS) //1TB

将数字改为107374182(100M),再重新生成一下convert_mnist_data.cpp

再次运行脚本,又出现这个问题:

convert_mnist_data.cpp:98] Check failed: _mkdir(db_path) == 0 (-1 vs. 0) mkdir .\examples\mnist\mnist_test_lmdbfailed

解决:前面虽然出现了错误,但数据文件夹同样生成了。在convert_mnist_data.cpp第98行代码中mkdir(db_path, 0744)表示为数据库创建文件夹。

如果文件夹已经存在,程序会报错退出。程序不会覆盖已有的数据库。已有的数据库如果不要了,需要手动删除。

(3)修改.\caffe-master\examples\mnist\lenet_solver.prototxt 将最后一行改为solver_mode:CPU

修改.\caffe-master\examples\mnist\lenet_train_test.prototxt,如下图。

02536d99499bc4e8afd90456e338e11b.png

(4)在.\caffe-master目录下,新建train_mnist.bat,然后写入下面代码:

.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt

pause

然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。(用Debug配置运行时,大概要一个小时左右才能训练完)

166cb2ce0aa76864db02ceee2797d1ca.png

4.配置Python接口

(1)编译caffe接口,确认配置文件CommonSettings.props的参数中第13、48行已修改,如下。

true

C:\Anaconda2\

保存之后,去编译pycaffe,配置模式改为Release

7ff57bad95f6d5c089bdf7e9174f9e7b.png

编译完成以后,会出现.\caffe-master\Build\x64\Release\pycaffe文件夹

647450c0a01f3b45d19b455ddd0a8e97.png

将caffe文件夹复制到Anaconda2安装目录下C:\Anaconda2\Lib\site-packages

c22279b995fdac19228a2658a20e327f.png

(2)import caffe

由于我PC装了很多版本的Python,在cmd里指定下目录,调用C:\Anaconda2\里的Python.exe

再import caffe

97264615f6a7aa725568291e51f6e916.png

这时会出现 ImportError: No module named google.protobuf.internal 这个错误。

原因是没有protobuf这个模块。使用pip install protobuf(这个安装也需要注意,在cmd里指定下目录,

调用C:\Anaconda2\Scripts\里的pip.exe 即pip.exe install protobuf).

a29cfa5c794eafed848f2a6e2c95600b.png

模块安装完成以后,再import caffe,就OK了。

51965ed6a74f0bbdf10ffa33fdfe75fd.png

(3)看一个实例

实现的是利用噪声生成一张真实图片,使用的实例是Texture Synthesis Using Convolutional Neural Networks

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值