【caffe-Windows】以mnist为例lmdb格式数据

前言

前面介绍的案例都是leveldb的格式,但是比较流行和实用的格式是lmdb,原因从此网站摘取

  • 它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。
  • 虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。
  • 因此lmdb取代了leveldb成为Caffe默认的数据集生成格式。

以下步骤均为在E:\CaffeDev-GPU\caffe-master下实施

第一步

确保路径E:\CaffeDev-GPU\caffe-master\examples\mnist下存在从mnist官网下载的四个文件,我在mnist下新建了一个mnist文件夹,把文件丢进去了


并在E:\CaffeDev-GPU\caffe-master\examples\mnist文件夹下新建bat文件创建训练集create_minist_trainlmdb.bat,内容如下:

E:\CaffeDev-GPU\caffe-master\Build\x64\Debug\convert_mnist_data.exe ./mnist/train-images-idx3-ubyte ./mnist/train-labels-idx1-ubyte ./mnist_train_lmdb
pause
接下来创建测试集create_minist_testlmdb.bat,内容如下:

E:\CaffeDev-GPU\caffe-master\Build\x64\Debug\convert_mnist_data.exe ./mnist/t10k-images-idx3-ubyte ./mnist/t10k-labels-idx1-ubyte ./mnist_test_lmdb
pause

或者跟我们前面建立leveldb一样,建立一个bat,内容如下:

set DATA=../../data/mnist
set TOOLS=../../Build/x64/Debug

REM set BACKEND=leveldb
set BACKEND=lmdb

echo "Creating %BACKEND%..."

rd /s /q "mnist_train_%BACKEND%"
rd /s /q "mnist_test_%BACKEND%"

"%TOOLS%/convert_mnist_data.exe" %DATA%/train-images-idx3-ubyte %DATA%/train-labels-idx1-ubyte mnist_train_%BACKEND% --backend=%BACKEND%
"%TOOLS%/convert_mnist_data.exe" %DATA%/t10k-images-idx3-ubyte %DATA%/t10k-labels-idx1-ubyte mnist_test_%BACKEND% --backend=%BACKEND%

echo "Done."

pause

第二步

运行建立训练集的bat,出现我们的第一个问题

原因在于内存问题,打开caffe.sln,然后修改convert_mnist_data.cpp第101行

原始值设置内存为1T,然而我们的内存并没这么大,所以改小一点,差不多100M多一点吧

改完以后重新编译此cpp文件,然后再去运行前面建立训练集和测试集的bat文件

第三步

运行create_minist_trainlmdb.bat会出现


如果你原来有mnist_train_lmdb这个文件夹记得删掉,否则会出现


因为我们写bat的时候并未检测这个文件夹是否存在,只是想单纯建立这个文件夹,用来存lmdb数据,所以会出现mkdir应该就是make dir失败。

如果我们使用第三个bat就不会出现这个问题了,一目了然



  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翼冰舟

额~~~CSDN还能打赏了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值