首页 > 其他分享 >CIFAR-10 数据集的简介

CIFAR-10 数据集的简介

时间:2024-05-27 10:29:36浏览次数:24  
标签:10 简介 CIFAR 000 标签 图像 数据

文章目录

CIFAR-10 数据集的简介

CIFAR-10 数据集是一个广泛使用的图像数据集,具体可见CIFAR-10 和 CIFAR-100 数据集,它包含 60,000 张 32x32 像素的彩色(3 channels)图像,分为 10 个类别,每个类别有 6,000 张图像。每个类别的图像数量分布如下:

  • 飞机 (airplane): 6,000 张
  • 汽车 (automobile): 6,000 张
  • 鸟类 (bird): 6,000 张
  • 猫 (cat): 6,000 张
  • 鹿 (deer): 6,000 张
  • 狗 (dog): 6,000 张
  • 蛙 (frog): 6,000 张
  • 马 (horse): 6,000 张
  • 船 (ship): 6,000 张
  • 卡车 (truck): 6,000 张
文件结构

CIFAR-10 数据集通常以二进制文件的形式提供,每个类别的图像存储在一个单独的文件中。文件名通常遵循以下格式:

在这里插入图片描述

  • data_batch_1, data_batch_2, …, data_batch_5:每个文件包含 10,000 张图像,总共 50,000 张图像用于训练。
  • test_batch:包含 10,000 张图像,用于测试。

每个二进制文件包含以下结构:

  • 一个描述符,通常是一个小的文本块,说明文件中数据的类型和数量。
  • 紧随其后的是实际的图像数据。
图像数据结构

每张图像由以下部分组成:

  • 一个 32x32 像素的 RGB 图像,每个像素由 3 个字节表示红色、绿色和蓝色通道的强度(范围通常是 0-255)。
  • 一个标签,表示图像的类别,通常是一个整数(0-9)。
访问数据

要访问 CIFAR-10 数据集中的图像,通常需要执行以下步骤:

  1. 下载数据集:从官方网站或数据集提供者处下载 CIFAR-10 数据集的二进制文件。
  2. 读取二进制文件:使用适当的编程语言(如 Python)和库(如 PILopencv)读取二进制文件。
  3. 解析图像数据:从二进制文件中解析图像数据,并将其转换为图像矩阵或张量。
  4. 解析标签数据:从文件中读取标签,并将其转换为适合机器学习模型的格式。
Python代码
编辑器解释器
Pycharm Pro 2024.1Python3.10

使用 PIL 库加载 CIFAR-10 数据集中的图像:

ps:可查看cifar10数据集读取和显示

from matplotlib import pyplot as plt

# 数据集读取
def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict

# 输出数据格式
dict = unpickle('E:\Deep Learning\cifar-10-python\cifar-10-batches-py\data_batch_1')
# print(dict)
img = dict[b'data']
print(img.shape)

# 显示图片
show_image = img[666]
img_reshape = show_image.reshape(3, 32, 32)
pic = img_reshape.transpose(1, 2, 0)  # (3, 32, 32) --> (32, 32, 3)
plt.imshow(pic)
plt.show()

# 输出label
label = dict[b'labels']
image_label = label[666]
print(image_label)

输出(output):

{b'batch_label': b'training batch 1 of 5', 
 b'labels': [6, 9 ... 1, 5], 
 b'data': array([[ 59,  43,  50, ..., 140,  84,  72],
                                 ...
                 [ 62,  61,  60, ..., 130, 130, 131]], dtype=uint8),
 b'filenames': [b'leptodactylus_pentadactylus_s_000004.png', b'camion_s_000148.png',
                                 ...
                b'estate_car_s_001433.png', b'cur_s_000170.png']}

CIFAR-10 数据集的数据格式

​ 在 CIFAR-10 数据集的二进制文件中,标签数据并不是直接存储在图像数据的旁边。相反,标签是以单独的数字形式存储的,通常在图像数据块之后。每个标签代表一个图像所属的类别,并以整数形式给出,范围从 0 到 9,对应于数据集中的 10 个类别。

在解析 CIFAR-10 数据集的二进制文件时,你需要按照数据集的格式说明来读取和解析这些标签。以下是 CIFAR-10 数据集文件中标签数据存储的一般结构:

  1. 描述符:文件开始处有一个魔术数字(magic number),一个 32 位的整数,表示文件中数据块的数量。对于 CIFAR-10 的训练批次文件,这个数字通常是 1000,意味着每个批次包含 1000 张图像。
  2. 数据记录:每个数据块紧跟在魔术数字之后,每个数据块包含一张图像的数据以及对应的标签。
  3. 标签数据:紧接着描述符的是一系列整数,每个整数代表一个图像的标签。
  4. 图像数据:标签数据之后是实际的图像数据,每张图像的像素值以某种顺序(通常是连续的)存储在文件中。

在 CIFAR-10 的 data_batch 文件中,每个批次包含 10,000 张图像的数据,图像数据和标签数据是交错存储的。具体来说,文件中的前 10,000 个整数是标签,紧接着的大量数据是图像的像素值。
在 CIFAR-10 的 data_batch 文件中,每个批次包含 10,000 张图像的数据,图像数据和标签数据是交错存储的。具体来说,文件中的前 10,000 个整数是标签,紧接着的大量数据是图像的像素值。

标签:10,简介,CIFAR,000,标签,图像,数据
From: https://blog.csdn.net/nisidjndn/article/details/139182828

相关文章

  • CAS架构与原理简介
    1.会话与CookieHTTP是无状态协议,客户端与服务端之间的每次通信都是独立的,而会话机制可以让服务端鉴别每次通讯过程中的客户端是否是同一个,从而保证业务的关联性。Session是服务器使用一种类似于散列表的结构,用来保存用户会话所需要的信息.Cookie作为浏览器缓存,存储SessionI......
  • 100313. 所有球里面不同颜色的数目
    题目描述给你一个整数limit和一个大小为nx2的二维数组queries。总共有limit+1个球,每个球的编号为[0,limit]中一个互不相同的数字。一开始,所有球都没有颜色。queries中每次操作的格式为[x,y],你需要将球x染上颜色y。每次操作之后,你需要求出所有球中不同......
  • KubeSphere系列---【离线安装kubeSphere时报错:failed: [k8s_node02] failed to conne
    1.报错信息[root@k8s_masterkubesphere-3.4.1-1.23.15-offline-package]#./kkinitregistry-fconfig-sample.yaml-akubesphere.tar.gz_______||//||||//||//__||_____||//_____......
  • 《痞子衡嵌入式半月刊》 第 101 期
    痞子衡嵌入式半月刊:第101期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • 【C语言】10.C语言指针(1)
    文章目录1.内存和地址1.1内存1.2究竟该如何理解编址2.指针变量和地址2.1取地址操作符(&)2.2指针变量和解引⽤操作符(*)2.2.1指针变量2.2.2如何拆解指针类型2.2.3解引⽤操作符2.3指针变量的⼤⼩3.指针变量类型的意义3.1指针的解引⽤3.2指针+-整数3.3void*指针......
  • ACL简介
    一、ACL定义与概念ACL即访问控制列表(AccessControlList)。它是一种用来控制对特定资源访问的机制。在网络环境中,ACL用于规定哪些网络流量可以通过,哪些应该被阻止。可以基于源IP地址、目标IP地址、端口号等因素进行设置。在操作系统中,ACL可用于控制对文件、文......
  • P1020 导弹拦截
    原题链接:P1020[NOIP1999提高组]导弹拦截-洛谷|计算机科学教育新生态(luogu.com.cn)相当好的一道题,用于理解使用[[狄尔沃斯定理(Dilworth定理)]]当然这个定理肯定不止这么简单。第一问就是让求一个最大不上升子序列,如果用DP求解,将是\(O(n^2)\)的时间复杂度,而这道题......
  • 最新淘宝赔付项目,一单100+,活淘赔付项目怎么玩?
    首先咱们熟悉一下淘宝赔付规则:淘宝订单如果超过约定时间发货,如投诉成立,卖家需向您支付该商品实际成交金额的10%作为违约金(最高不超过100元,最低不少于5元,特殊商品除外),若卖家未配合主动支付违约金,淘宝会对卖家进行相应处处罚由于赔付上限100(10%)所以单笔订单上限只能拍......
  • P1048 [NOIP2005 普及组] 采药
    ##题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价......
  • OWASP Top 10 2021
    OWASPTOP10是开放式Web应用程序安全项目(OpenWebApplicationSecurityProject)发布的年度全球最严重的十大web应用程序安全风险。截止到目前,最近一次的发布时间是2021年(上一次发布是2017年)。A01:2021-失效的访问控制   A02:2021-加密机制失效   A03:2021-注......