Caffe for Windows 训练cifar10

1.下载cifar10数据库:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz

2.下载的cifar10数据库是6个bin格式的文件,需要使用caffe for windows里的转化工具将bin格式的数据转化为leveldb格式。在../examples/cifar10文件夹下有个convert_cifar_data.cpp,将其include到MainCaller.cpp文件中,如下图所示


经过编译在../bin目录下产生MainCaller.exe可执行文件。注意,在visual studio 2012环境下,出现了错误:error C3861: “snprintf”: 找不到标识符,如下图所示:


主要原因是在vs环境下,snprintf被_snprintg替代。解决方法:在convert_cifar_data.cpp的开头加上以下语句:

<pre name="code" class="cpp">#if _MSC_VER
#define snprintf _snprintf#endif
 如下图,即可通过编译 

在../bin目录下建立input和output两个文件夹,将cifar-10-binary.tar.gz解压后得到的文件夹cifar-10-batches-bin放到input文件夹下。打开cmd,切换到../bin目录下


会在output文件夹下生成cifar-test-leveldb和cifar-train-leveldb两个文件夹。


3.接下来,求图像数据的平均值,在MainCaller.cpp中include文件../../tools/compute_image_mean.cpp文件,编译成功后,求mean。cmd进入../bin目录,运行MainCaller.exe output/cifar-train-leveldb mean.binaryproto命令,运行过程中会出现如下错误:


在网上找到消息,看了这篇博客:http://www.myexception.cn/image/1952480.html

解决方法:在../../tools/compute_image_mean.cpp文件70行左右添加语句

delete it;

即可在../bin目录下生成mean.binaryproto文件。

4.接下来就可以训练cifar网络了。将cifar-test-leveldb和cifar-train-leveldb两个文件夹以及生成的mean.binaryproto拷贝到../examples/cifar10文件夹下。修改cifar10_quick_train.prototxt和cifar10_quick_test.prototxt文件中的source和mean_file分别为

source: "cifar-train-leveldb"
mean_file: "mean.binaryproto"
source: "cifar-test-leveldb"
mean_file: "mean.binaryproto"

在MainCaller.cpp中include ../../tools/train_net.cpp文件,编译即可训练cifar网络。可以写一段train.bat语句,方便运行

SET GLOG_logtostderr=1
"../../bin/MainCaller.exe" cifar10_quick_solver.prototxt  
pause
运行train.bat语句即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值