[数据集]cifar-10
cifar-10数据集保存10类,每类6000张图像。其中50000张训练图像和10000张测试图像
训练图像保存在5个文件中,每个文件有10000张图像,测试图像保存在一个文件,训练和测试图像都以随机顺序保存
cifar-10提供了使用不同语言生成的压缩包,包括python/matlab/c
python解析
训练文件命名为data_batch_1/data_batch_2/data_batch_3/data_batch_4/data_batch_5
测试文件命名为test_batch
另外还有一个元数据文件batches.meta,保存了标签名对应的类名,比如label_names[0] == "airplane", label_names[1] == "automobile"
python版压缩包使用pickle模块进行保存,解析程序如下,返回一个dict
1 | def unpickle(file): |
以测试集文件为例,其包含以下键值对
1 | dict_keys([b'batch_label', b'labels', b'data', b'filenames']) |
其中b'labels'保存类别标签(0-9),b'data'保存对应图像数据,b'filenames'保存图像文件名
1 | if __name__ == '__main__': |
数据格式
键b'data'保存了图像数据,其值类型是numpy.ndarray,每一行都保存了32x32大小图像数据
其中前1024个字节是红色分量值,中间1024个字节是绿色分量值,最后1024个字节是蓝色分量值
解析程序如下:
1 | # -*- coding: utf-8 -*- |

解压代码
完整解压代码如下:
1 | # -*- coding: utf-8 -*- |
读取图像
读取解压后的图像并显示,代码如下:
1 | if __name__ == '__main__': |
