Windows Caffe 学习笔记 CIFAR-10数据的格式转换

来源:互联网 发布:android ui布局优化 编辑:程序博客网 时间:2024/04/29 19:03

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



阅读全文
0 0
原创粉丝点击