大家好,又见面了,我是你们的朋友全栈君。
CIFAR10下载:http://www.cs.toronto.edu/~kriz/cifar.html
1. 数据集介绍
该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。这里面有50000张用于训练,构成了5个训练批,每一批10000张图;另外10000用于测试,单独构成一批。测试批的数据里,取自10类中的每一类,每一类随机取1000张。抽剩下的就随机排列组成了训练批。注意一个训练批中的各类图像并不一定数量相同,总的来看训练批,每一类都有5000张图。
下面这幅图就是列举了10各类,每一类展示了随机的10张图片:
2. 将下载的数据转化为图片
以Python的数据为例说明,解压后会得到如下数据:
该数据集文件包含data_batch1……data_batch5,和test_batch。batches.meta是一个python字典对象,如:abel_names[0] == “airplane”, label_names[1] == “automobile”。
如何将该数据转化为图片格式:
import cv2
import numpy as np
import os
def unpickle(file):
import cPickle
with open(file, 'rb') as f:
dict = cPickle.load(f)
return dict
def main(cifar10_data_dir):
for i in range(1, 6):
train_data_file = os.path.join(cifar10_data_dir, 'data_batch_' + str(i))
print(train_data_file)
data = unpickle(train_data_file)
print('unpickle done')
for j in range(10000):
img = np.reshape(data['data'][j], (3, 32, 32))
img = img.transpose(1, 2, 0)
img_name = 'train/' + str(data['labels'][j]) + '_' + str(j + (i - 1)*10000) + '.jpg'
cv2.imwrite(os.path.join(cifar10_data_dir, img_name), img)
test_data_file = os.path.join(cifar10_data_dir, 'test_batch')
data = unpickle(test_data_file)
for i in range(10000):
img = np.reshape(data['data'][i], (3, 32, 32))
img = img.transpose(1, 2, 0)
img_name = 'test/' + str(data['labels'][i]) + '_' + str(i) + '.jpg'
cv2.imwrite(os.path.join(cifar10_data_dir, img_name), img)
if __name__ == "__main__":
main('cifar-10-batches-py')
转化后的图片存放在train和test两个文件夹中,如图:
end!!!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152118.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...