Windows Caffe 学习笔记 CIFAR-10数据的格式转换
Caffe要求的标准数据格式是LEVELDB或LMDB,所以先从CIFAR官网下载binary格式的数据(点击打开链接),然后进行转换。
从网上看到的几篇文章,解决方法均为:编译MainCaller.cpp,而在我的caffe中找不到此类文件,应该是因为版本问题的原因。所以,记录下我解决的方法。
一、将binary格式的CIFAR-10转换为LEVELDB格式的过程:
1.打开caffe.sln,编译convert_cifar_data.cpp,之后会在Build\x64\Release中生成convert_cifar_data.exe.
截图如下,作为参考:
2.cmd命令行,运行convert_cifar_data.exe,可以看到使用帮助:
可以看到Usage: convert_cifar_data input_folder output_folder db_type。
input_folder可以从官网下载(http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz)也可以从链接下载:http://pan.baidu.com/s/1eR4ytKQ 密码:g6gj
可以把命令写成一个bat文件来执行,如下:
@echo off
SET HOME=D:\Caffe\caffe-master
SET TOOL=%HOME%\Build\x64\Release\convert_cifar_data.exe
SET EXAMPLE=%HOME%\examples\cifar10
SET DATA=%HOME%\data\cifar10\cifar-10-batches-bin
SET DBTYPE=leveldb
@echo on
echo "Creating leveldb..."
@echo off
if exist %EXAMPLE%\cifar10_train_%DBTYPE% @del %EXAMPLE%\cifar10_train_%DBTYPE% /f /q
if exist %EXAMPLE%\cifar10_test_%DBTYPE% @del %EXAMPLE%\cifar10_test_%DBTYPE% /f /q
@echo on
%TOOL% %DATA% %EXAMPLE% %DBTYPE%
@echo "Done."
@pause
里面的路径根据自己电脑的实际情况修改,点击之后打印如下:
在指定文件夹中,便生成了LEVELDB格式的数据:路径就是%EXAMPLE%指定的路径
二、求图像数据的均值
1.同上面的步骤一样,打开Caffe.sln,编译compute_image_mean,会在Build\x64\Release中得到compute_image_mean.exe.
2.输入如下格式的命令写成如下的bat文件,点击执行
@echo off
SET HOME=D:\Caffe\caffe-master
SET TOOL=%HOME%\Build\x64\Release\compute_image_mean.exe
SET TRAINDATA=%HOME%\examples\cifar10\cifar10_train_leveldb
SET MEANDATA=%HOME%\examples\cifar10\mean.binaryproto
SET DBTYPE=leveldb
@echo on
echo "Compute image mean..."
@echo off
if exist %MEANDATA% @del %MEANDATA% /f /q
@echo on
%TOOL% %TRAINDATA% %MEANDATA% --backend=%DBTYPE%
@echo "Done."
@pause
3.在指定位置,得到mean.binaryproto