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)
上一篇 2022年6月22日 上午10:00
下一篇 2022年6月22日 上午10:00


相关推荐

  • 国密算法「建议收藏」

    国密算法「建议收藏」算法分类国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加

    2022年8月1日
    22
  • c语言实现约瑟夫环

    c语言实现约瑟夫环一般有循环链表和数组模拟两种方式 貌似还有递归实现的呢 这里主要介绍数组模拟方式 一 最简单的约瑟夫环问题约瑟夫环是一个数学的应用问题 已知 n 个人 以编号 1 2 3 n 分别表示 围坐在一张圆桌周围 从编号为 1 的人开始报数 数到 m 的那个人出列 他的下一个人又从 1 开始报数 数到 m 的那个人又出列 依此规律重复下去 直到圆桌周围的人全部出列 如果用数组模拟这个过程 就要考

    2025年11月23日
    5
  • Dubbo – Dubbo的SPI机制

    Dubbo – Dubbo的SPI机制SPI 是什么 SPI 全称 serviceprovi 比如你有一个接口 现在这个接口有三个实现类 那么在系统运行的时候对这个接口到底选择哪个实现类呢 这就需要 SPI 了 需要根据指定的配置或者默认的配置 去找到对应的实现类加载进来 然后用这个实现类的实例对象 举个例子 你有一个接口 A A1 A2 A3 分别是接口 A 的不同实现 你通过配置接口 A 实现类 A2 那么系统在

    2026年3月17日
    2
  • Django Pycharm 修改html后立即刷新页面

    Django Pycharm 修改html后立即刷新页面DjangoPychar 修改 html 后立即刷新页面写项目时需要页面实时刷新 而不是频繁人肉重启项目 测试过 dj static django livereload server 此处使用 livereload 包 简单好用 仅在 debug False 时生效 不过可以满足调试需求了 安装 pipinstallli 如果报错 Usinglegacy setup pyinstall forlivereloa sincepackage wheel isnotin

    2026年3月17日
    0
  • PostgreSQL数据库系列之五:预写式日志WAL

    PostgreSQL数据库系列之五:预写式日志WALWAL 介绍 在 PostgreSQL 中 通过 WriteAheadLo WAL 预写式日志来作为标准的事务日志 对于 PostgreSQL 来说 未采用 WAL 机制之前 如果数据库崩溃 可能存在数据页不完整的风险 而 WAL 在日志里保存整个数据页的内容 完美地解决了这个问题 WAL 是 PostgreSQL 数据库的重要组成部分 它存储了 PG 系统中所有更改和操作的历史信息 以确保数据库不会因为故障

    2026年3月16日
    2
  • Python实现向量自回归(VAR)模型——完整步骤「建议收藏」

    废话不多说,先开始分享:1.首先啥是VAR模型,我这里简略通俗的说一下,想看代码的童鞋直接跳到第3部分就好了:以金融价格为例,传统的时间序列模型比如ARIMA,ARIMA-GARCH等,只分析价格自身的变化,模型的形式为:其中称为自身的滞后项。但是VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响,模型的形式为:其中就是其他因子的滞后项…

    2022年4月15日
    1.2K

发表回复

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

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