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!!!

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 程序员即装逼又实用的Cmd命令行

    程序员即装逼又实用的Cmd命令行首先windows键+R(+R)打开运行,输入cmd回车打开命令行。1、cleanmgr选择盘符清理垃圾,能加快电脑运行速度。2、chkdsk磁盘检查,能检查磁盘是否有损害。3、devmgmt打开设备管理器4、dxdiag打开DirectX诊断工具,买二手电脑是避免黑商修改电脑配5、ping:ping192.168.0.1判断某台电脑是否能连…

    2022年5月20日
    73
  • 基本稳压电路

    基本稳压电路经过整流后的电源具有较大的电压纹波,单靠调节滤波电容不能明显改善输出电源纹波特性,因此需要采用稳压电路来减小输出电源的纹波。若直将稳压管接至负载输出,则稳压管的工作特性受负载影响较大,甚至会出现不能正常工作的情况。采用下图所示的稳压电路则能保证稳压管始终能够正常工作。其核心思想仍然是负反馈。运放正输入端采用稳压管提供一个相对稳定的基准电压,并通过同相放大在输出端得到一个稳定的输出电压。而由于运放具有一定的电源抑制比,所以在供电电压在一定范围波动时,其仍可正常工作。同向比例运放的输出电流有限,故采用了

    2022年6月20日
    31
  • 带通 带阻滤波器 幅频响应_方程推导:二阶有源带通滤波器设计!(内附教程+原理图+视频+代码下载)…[通俗易懂]

    带通 带阻滤波器 幅频响应_方程推导:二阶有源带通滤波器设计!(内附教程+原理图+视频+代码下载)…[通俗易懂]1、背景对于微弱的信号的处理方式一般是:放大和滤波,这个过程中就涉及到放大电路的选取、滤波器的选择以及偏置电路的设计。本例以实例的方式讲解并附带参数计算、仿真、实物测试三个环节。假设需要处理一个20mV的正弦信号,该信号的频率范围是15~35Hz,经过处理后幅值不超过3.3V,且需要经过带通滤波器滤除杂波。2、滤波器定义滤波电路又称为滤波器,是一种选频电路,能够使特定频率范围的信号通过,…

    2022年6月6日
    39
  • WiFi 2.4G和5G信道分布说明(认证相关)

    WiFi 2.4G和5G信道分布说明(认证相关)FCC36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165IC 36,40,44,48,52,56,60,64,149,153,157,161ETSI 36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140SPAIN 36,40,44,48,52,56,60,64,100,104,108,112,116,120,124.

    2022年6月3日
    38
  • 代码解读器_网页代码解读

    代码解读器_网页代码解读0写在前面在对STN的原论文进行了翻译、理解后,我打算去github上运行下源码,以加深对ST的理解。毕竟,talkischeap,showmethecode!此外,虽然论文作者发布是tf的源码,但由于我对tensorflow不如pytorch熟稔,因此这里我只看了pytorch官网复现的STN代码。发现写得非常详细,很适合小白入门,因此我放弃了自己解读的机会,打算就搬运一下原教程哈哈。1具体教程注:以下内容均为复制/翻译,不过我在代码上加了点中文注释Spatialtransfor

    2022年10月7日
    0
  • PyTorch碎片:F.pad的图文透彻理解

    PyTorch碎片:F.pad的图文透彻理解1.F.pad函数定义F.pad是pytorch内置的tensor扩充函数,便于对数据集图像或中间层特征进行维度扩充,下面是pytorch官方给出的函数定义。torch.nn.functional.pad(input,pad,mode=’constant’,value=0)函数变量说明:input需要扩充的tensor,可以是图像数据,抑或是特征矩阵数据pad扩充维度,用…

    2022年8月13日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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