windows下caffe训练mnist数据集

MNIST数据集是一个手写数字数据集,它有60000个训练样本和10000个测试样本。

1.数据集准备

下载地址:http://yann.lecun.com/exdb/mnist/

一共包含四个压缩包:

train-images-idx3-ubyte.gz:训练集图片

train-labels-idx1-ubyte.gz:训练集图片对应数字标签

t10k-images-idx3-ubyte.gz:测试集图片

t10k-labels-idx1-ubyte.gz:测试集图片对应数字标签

将数据集下载到caffe-windows\examples\mnist下新建的文件夹mnist_data里,解压缩文件:

注意上图:解压缩后发现横线变成了点,所以最好改一下文件名,方便后面操作,比如我修改如下:

2.数据集格式转换

在windows下利用caffe进行训练支持两种格式的数据集,leveldb或者lmdb,因此需要先把数据集转换成这两种格式之一。caffe自带一些数据集格式转换工具的源代码,convert_mnist_data.cpp提供了mnist数据集转换的核心代码。

先在caffe解决方案下生成convert_mnist_data工程:

我使用Debug模式生成,则在.\caffe-windows\Build\x64\Debug文件夹下生成了convert_mnist_data.exe:

在caffe-windows\examples\mnist文件夹下新建convert-mnist-data-leveldb.txt,写入以下批处理命令:

..\..\Build\x64\Debug\convert_mnist_data.exe mnist_data\train-images mnist_data\train-labels mnist_data\mnist_train_leveldb -backend=leveldb
echo.
..\..\Build\x64\Debug\convert_mnist_data.exe mnist_data\test-images mnist_data\test-labels mnist_data\mnist_test_leveldb -backend=leveldb
pause

然后将文件后缀改为.bat保存。运行成功后:

得到转换好的leveldb格式数据集:

若要转换成lmdb格式则新建convert-mnist-data-lmdb.bat,写入以下命令:

..\..\Build\x64\Debug\convert_mnist_data.exe mnist_data\train-images mnist_data\train-labels mnist_data\mnist_train_lmdb -backend=lmdb
echo.
..\..\Build\x64\Debug\convert_mnist_data.exe mnist_data\test-images mnist_data\test-labels mnist_data\mnist_test_lmdb -backend=lmdb
pause

然后保存,运行,过程同上。

注意:转换成leveldb格式时一般没问题,但转换成lmdb格式时可能会出现以下错误:

在vs中打开convert_mnist_data工程里的convert_mnist_data.cpp做出修改:

将1099511627776改为104857600

这一行是lmdb类型操作环境参数,默认的1TB太大了,我们把它改小一点,比如改成104857600,也就是100M。

接着重新生成convert_mnist_data.exe,再运行convert-mnist-data-lmdb.bat进行lmdb格式转换就能成功了:

完成格式转换后将会在caffe-windows\examples\mnist\mnist_data目录下得到四个文件夹:

3.训练和测试

以leveldb格式数据训练为例进行说明。

为了方便处理,附上我转换后的数据集,大家可以直接下载使用:

打开:caffe-windows\examples\mnist目录下的lenet_train_test.prototxt文件做如下修改并保存:

打开caffe-windows\examples\mnist目录下的lenet_solver.prototxt文件进行如下修改并保存:

在caffe-windows文件夹下新建train-minist.bat并写入以下命令:

.\Build\x64\Debug\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause

保存train-minist.bat并开始运行,mnist数据集就开始进行训练了,最后会得到test的accuracy和loss:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值