zoukankan      html  css  js  c++  java
  • CIFAR-10 dataset 的下载与使用

    基本信息

    CIFAR-10 是一个包含60000张图片的数据集。其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值,数值范围 0 ~ 255。

    所有照片分属10个不同的类别,分别是 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'

    其中五万张图片被划分为训练集,剩下的一万张图片属于测试集。

    下载数据集

    打开下面的链接进入官网下载

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

    下载完成后先解压缩,之后会得到如下几个文件

    data_batch_1 ~ data_batch_5 是划分好的训练数据,每个文件里包含10000张图片,test_batch 是测试集数据,也包含10000张图片。他们的结构是一样的,下面就用 data_batch_1 作为例子进行说明。

    读取数据

    复制代码
    import pickle
    
    def load_file(filename):
        with open(filename, 'rb') as fo:
            data = pickle.load(fo, encoding='latin1')
        return data
    复制代码

    首先定义读取数据的函数,这几个文件都是通过 pickle 产生的,所以在读取的时候也要用到这个包。

    这里面返回的data是一个字典,先看看这个字典里面有哪些键吧。

    data = load_file('test_batch')
    print(data.keys())

    输出结果

    1
    dict_keys(['batch_label''labels''data''filenames'])
    • batch_label 

      对应的值是一个字符串,用来表明当前文件的一些基本信息。  

      如果是 data_batch_1 这个文件,里面的值就是

    training batch 1 of 5

      如果是 test_batch 这个文件,里面的值就是

    testing batch 1 of 1
    • labels

      对应的值是一个长度为10000的列表,每个数字取值范围 0~9,代表当前图片所属类别

    • data

      10000 * 3072 的二维数组,每一行代表一张图片的像素值。(32*32*3=3072)

    • filenames

      长度为10000的列表,里面每一项是代表图片文件名的字符串。


     

    batches.meta 文件可以用相同的方法读取,里面存的是一些基本信息。

    • num_cases_per_batch

      10000

    • label_names
    ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
    • num_vis

      3072

  • 相关阅读:
    操作系统实验报告-信号量的实现和应用
    操作系统实验报告-系统调用
    操作系统实验报告-熟悉实验环境
    Linux下JDK环境变量配置
    BATMAN.adv系列07 过度泛洪的遏制策略与网络重组
    BATMAN.adv系列06 协议栈结构
    BATMAN.adv系列05 数据结构分析
    BATMAN.adv系列04 TVLV包
    BATMAN.adv系列01:BATMAN.adv IV 概述
    Kudu、Hudi和Delta Lake的比较
  • 原文地址:https://www.cnblogs.com/klausage/p/11790293.html
Copyright © 2011-2022 走看看