CIFAR10数据集转化为图片

CIFAR10数据集转化为图片CIFAR10 下载 http www cs toronto edu kriz cifar html 1 数据集介绍 该数据集共有 60000 张彩色图像 这些图像是 32 32 分为 10 个类 每类 6000 张图 这里面有 50000 张用于训练 构成了 5 个训练批 每一批 10000 张图 另外 10000 用于测试 单独构成一批 测试批的数据里 取自 10 类中的每一类 每一类随机取 1000 张

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

1. 数据集介绍

该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。这里面有50000张用于训练,构成了5个训练批,每一批10000张图;另外10000用于测试,单独构成一批。测试批的数据里,取自10类中的每一类,每一类随机取1000张。抽剩下的就随机排列组成了训练批。注意一个训练批中的各类图像并不一定数量相同,总的来看训练批,每一类都有5000张图。

下面这幅图就是列举了10各类,每一类展示了随机的10张图片:

Caption

2. 将下载的数据转化为图片

以Python的数据为例说明,解压后会得到如下数据:

Caption

该数据集文件包含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两个文件夹中,如图:

Caption

end!!!

编程小号
上一篇 2025-02-21 08:21
下一篇 2025-03-02 08:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/111271.html