由于caffe官方和很多博客已经提供了
mnist和
cifar10在caffe上测试的教程,这里就不再复现这些教程了,今天和大家分享一下
如何在caffe下训练cifar100数据集
一.数据准备
CIFAR-10 and CIFAR-100 datasetsCifar100和cifar10类似,训练集数目是50000,测试集是10000,只是分为20个大类和100个小类。
首先我们下载CIFAR-100 python version,下载完之后解压,在cifar-100-python下会出现:meta,test和train三个文件,他们都是python用cPickle封装的pickled对象
def unpickle(file):
import cPickle
fo = open(file, 'rb')
dict = cPickle.load(fo)
fo.close()
return dict
通过以上代码可以将其转换成一个dict对象,test和train的dict中包含以下元素:
data——一个nx3072的numpy数组,每一行都是(32,32,3)的RGB图像,n代表图像个数
coarse_labels——一个范围在0-19的包含n个元素的列表,对应图像的大类别
fine_labels——一个范围在0-99的包含n个元素的列表,对应图像的小类别
而meta的dict中只包含fine_label_names,第i个元素对应其真正的类别。
但是caffe不支持这样的数据格式啊,下面我们用一段python脚本将其转换为大家熟悉的lmdb: