基本信息
官网: http://www.cs.toronto.edu/~kriz/cifar.html
共 60000 张图片: 50000 张用于训练, 10000 张用于测试
图片大小为: 32X32
数据集图片分为 10 类: 每类 6000 张
数据集下载解压后的目录结构:
读取, 打印和保存数据集中指定的图片:
- import pickle
- import matplotlib.pyplot as plt
- CIFAR_DIR ="cifar10_data/cifar-10-batches-bin/data_batch_1.bin"# 数据集路径
- with open(CIFAR_DIR , 'rb') as f:
- data = pickle.load(f, encoding='bytes')
- print('----------batch1 的基本信息 -------------')
- print('data 的数据类型:',type(data)) # 输出 <class 'dict'>
- print('字典的 key 名称:',data.keys()) # 输出 dict_keys([b'filenames', b'data', b'labels', b'batch_label'])
- print('bdata 的数据类型',type(data[b'data'])) # 输出 <class 'numpy.ndarray'>
- print('bdata 的数据形状',data[b'data'].shape) # 输出 (10000, 3072) 说明有 10000 个样本, 3072 个特征
- index=4# 打印第几张图片
- print('----------- 第 %d 张图片信息 ----------'%index)
- print('filenames:',data[b'filenames'][index])
- print('labels:',data[b'labels'][index])
- print('batch_label:',data[b'batch_label'][index])
- image_arr = data[b'data'][index] # 拿出 第 index 个样本
- image_arr = image_arr.reshape((3, 32, 32)) # 将一维向量改变形状得到这样一个元组:(高, 宽, 通道数)
- image_arr = image_arr.transpose((1, 2, 0))
- plt.imshow(image_arr) # 输出图片
- plt.savefig("cifar10_data/raw/%d.png"%index)# 保存图片
- plt.show()
打印出的图片
来源: http://www.bubuko.com/infodetail-3421931.html