CIFAR10数据集转化为图片

CIFAR10数据集转化为图片CIFAR10是一个小型的分类数据集,很多论文在该数据集上做实验。本文会简要的介绍CIFAR10,该数据集下载,并将该数据集转化为图片,供以后训练模型使用。

大家好,又见面了,我是你们的朋友全栈君。

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

1. 数据集介绍

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

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

CIFAR10数据集转化为图片
Caption

 

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

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

CIFAR10数据集转化为图片
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两个文件夹中,如图:

CIFAR10数据集转化为图片
Caption

end!!!

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152118.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MATLAB入门教程

    MATLAB入门教程MATLAB入门教程

  • Ubuntu下代替dos2unix命令

    Ubuntu下代替dos2unix命令Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’原因就是Windows和Linux的回车符是不同的在Windows下回车符是\r\n回车换行在Linux下回车符是\n最简单、最常用的解决方法是使用dos2unix命令转换:dos2unixfilenameUbuntu下dos2unix和unix2dos命令在tofrodos包中

  • vmware虚拟机(四)之安装centos7图形界面Linux

    vmware虚拟机(四)之安装centos7图形界面Linux1.创建新的虚拟机2.根据提示一步一步操作,这里可以选择推荐的,也可以选择自定义3.虚拟机硬件兼容性一般选择默认的,即次虚拟机支持的最新版本,下面是一些兼容产品和限制,此虚拟机可安装的最大内存为64GB,处理器数目最多为16个。。。。4.为了练习安装Linux操作系统,我们选择稍后安装操作系统5.根据自己需要的操作系统版本选择,这里我们选择centos64位的Linux6.虚…

  • 不同卷积操作详解

    不同卷积操作详解不同卷积操作详解References:Aguidetoconvolutionarithmeticfordeeplearning,VincentDumoulinandFrancescoVisin;https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md.引言我们知道CNN在深度学习中占有举…

  • S3C2440—UART原理简介

    S3C2440—UART原理简介通用异步收发器简称UART,即“UniversalAsynchronousReceiverTransmitter”     s3c2440提供了三个UART端口,它们都可以通过查询、中断和DMA方式传输数据,而且每个UART都分别有一个64个字节的接收FIFO和一个64个字节的发送FIFO。UART由波特率发生器、发送器、接收器和控制逻辑组成,使用系统时钟可以达到115.2Kbit

  • 激活码2089(已测有效)

    激活码2089(已测有效),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号