CS 231n 学习笔记 02附——CIFAR10的使用

CIFAR10是80 million tiny images数据集的一个子集,共包含60000张32*32的小型彩色图标。每张图片有RGB 3个颜色通道。

每张图片表示为一个长32*32*3的3072维向量,每个元素数据格式unit8即256色。其中前1024维为红色向量,中间1024维为绿色向量,尾1024维为蓝色向量。每个向量又以像素点为行优先排列。

CIFAR10数据集由6个文件组成,即data_batch_1~5和test_batch,各由10000张图片构成,其中无重复图像。

test_batch严格由各类别各1000张图片组成,而data_batch1~5各类别的构成数量不定。

数据集的下载:

http://www.cs.toronto.edu/~kriz/cifar.html

数据集的使用(Python版):

每个文件都是由python生成的pickle类的对象,在python3中,可用如下方式使用文件:

import pickle
def unpickle(file):
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict

该函数返回一个dict字典对象。

可调用如下代码查看关键字:

diction=unpickle('文件所在路径\data_batch_1') #以在windows中打开batch1为例
print(diction.keys())

输出如下:

  • dict[b'batch_label]是含当前信息的字符串,比如batch1就是b:'training batch 1 of 5'
  • dict[b'data']是一个10000*3072的numpy二维数组,每个行向量表示一个图片。(所以要提前安装numpy包)
  • dict[b'labels']是一个长10000的list,元素是0~9,表示dict[b'data‘]中一一对应的每一个图片的类别。
  • dict[b'filenames']是一一对应的每一个图片的原文件名(拓展名皆为png)。

batches.meta 文件可以用相同的方法读取,里面存的是一些基本信息。

  • num_cases_per_batch

  10000

  • label_names
['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
  • num_vis

  3072

原文地址:https://www.cnblogs.com/CaptainLL/p/8835037.html