CIFAR-10数据集目录结构以及数据组织格式

xiaoxiao2021-03-01  25

返回目录:总目录——深度学习代码实战

关于CIFAR数据集的基本信息就不详细介绍了.在官网上下载很慢,这里特意上传了一份: 下载链接:cifar-10-batches-py 这里主要介绍一下这个数据集的目录结构以及内部数据组织格式.

import pickle import numpy as np import os # 目录 CIFAR_DIR = "./cifar-10-batches-py" print(os.listdir(CIFAR_DIR)) ''' 输出: ['batches.meta', 'test_batch', 'data_batch_5', 'data_batch_3', 'data_batch_2', 'data_batch_4', 'readme.html', 'data_batch_1'] 这是目录下的所有文件 ''' with open(os.path.join(CIFAR_DIR, 'data_batch_1'), 'rb') as f: data = pickle.load(f, encoding='bytes') # python3 需要添加 encoding='bytes' print(type(data)) # 输出 <class 'dict'> print(data.keys()) # 输出 dict_keys([b'filenames', b'data', b'labels', b'batch_label']) print(type(data[b'data'])) # 输出 <class 'numpy.ndarray'> print(data[b'data'].shape) # 输出 (10000, 3072) 说明有 10000 个样本, 3072个特征 print(data[b'data'][0:3]) print(data[b'labels'][:2]) ''' [[ 59 43 50 ... 140 84 72] [154 126 105 ... 139 142 144] [255 253 253 ... 83 83 84]] 二维矩阵,每一行是一个特征 [6, 9] 标签值 6代表第六个分类,9代表第九个分类 ''' # 一个名字对应矩阵的一行 # 现在将一个行向量转化为一张图片,看看样子 image_arr = data[b'data'][101] # 拿出 第 101 个样本 image_arr = image_arr.reshape((3, 32, 32)) # 将一个一维向量改变形状,目的是得到这样一个元组:(高,宽,通道数) image_arr = image_arr.transpose((1, 2, 0)) # 将上一行的元组变为我们需要的样子,第一个元素放到最后 import matplotlib.pyplot as plt plt.imshow(image_arr) # 将图片输出 plt.show()

最后输出的图像: 这应该是一辆卡车,因为数据集都是32*32,所以放大之后会有马赛克.

转载请注明原文地址: https://www.6miu.com/read-4150268.html

最新回复(0)