首页 > 其他分享 >huggingface 的 mnist 数据集的使用

huggingface 的 mnist 数据集的使用

时间:2024-09-17 13:50:43浏览次数:8  
标签:plt image huggingface dataset 图像 import array 数据 mnist

由于原始的地址设置了登陆权限,所以,选择 huggingface 的 mnist 数据集使用。

数据装载

首先到 hf 网站下载相关数据集,地址是 ylecun/mnist, 然后在安装 hf 设计的数据集加载套件 datasets 工具包。
用 huggingface提供的工具下载到本地目录
huggingface-cli download --repo-type dataset ylecun/mnist --local-dir ylecun/mnist

调用

import numpy as np
from datasets import load_dataset
import matplotlib.pyplot as plt

dataset = load_dataset('ylecun/mnist')
train_data = dataset['train']
first_image = train_data[0]
image = first_image['image']
image_array = np.array(image)
plt.imshow(image_array, cmap='gray')
plt.show()

解读

1. 导入必要的库:

from datasets import load_dataset
import numpy as np
import matplotlib.pyplot as plt
  • datasets: 用来加载数据集。
  • numpy: 用于处理数值数组。
  • matplotlib: 用于绘制图像。

2. 加载数据集并获取第一个样本:

dataset = load_dataset("ylecun/mnist")
train_dataset = dataset['train']
first_sample = train_dataset[0]

3. 打印图像和标签:

# 打印标签
print("Label:", first_sample['label'])

# 获取图像数据
image = first_sample['image']

# 将图像数据转换为NumPy数组,并展示其形状
image_array = np.array(image)
print("Image shape:", image_array.shape)

# 绘制图像
plt.imshow(image_array, cmap='gray')
plt.show()

4. 打印图像的数字表示(像素值):

# 打印图像的前几行像素值
print("First few rows of pixel values:")
print(image_array[:5, :5])

代码解释

  • 图像数据: 在 MNIST 数据集中,图像通常以 NumPy 数组的形式存储,每个元素表示一个像素的灰度值。
  • 图像形状: image_array.shape 显示了图像的高度、宽度和通道数。对于灰度图像,通道数通常为1。
  • 绘制图像: plt.imshow 函数将 NumPy 数组绘制成图像。
  • 打印像素值: 可以直接打印 NumPy 数组的部分元素来查看像素值。

完整代码示例

from datasets import load_dataset
import numpy as np
import matplotlib.pyplot as plt

dataset = load_dataset("ylecun/mnist")
train_dataset = dataset['train']
first_sample = train_dataset[0]

print("Label:", first_sample['label'])

image = first_sample['image']
image_array = np.array(image)
print("Image shape:", image_array.shape)

plt.imshow(image_array, cmap='gray')
plt.show()

print("First few rows of pixel values:")
print(image_array[:5, :5])

进一步分析

  • 像素值范围: MNIST 图像的像素值通常在 0 到 255 之间,表示不同程度的灰度。
  • 数据预处理: 在进行深度学习训练之前,通常需要对图像数据进行归一化、标准化等预处理。
  • 其他操作: 除了打印像素值,还可以计算图像的统计特征(如平均值、方差),或者对图像进行一些变换(如旋转、缩放)。

拓展

  • 查看其他样本: 可以通过改变索引来查看其他样本。
  • 保存图像: 可以使用 plt.imsave 函数将图像保存为文件。
  • 自定义可视化: 可以使用更复杂的可视化库,如 Seaborn,来创建更精美的图像。

标签:plt,image,huggingface,dataset,图像,import,array,数据,mnist
From: https://www.cnblogs.com/litifeng/p/18417129

相关文章

  • JDBC的介绍和连接MySQL数据库
    目录1.为什么学习JDBC1.1数据存储​编辑​编辑1.2 数据操作​编辑2.JDBC概述2.1JDBC概念2.2JDBC核心组成3.实现JDBC3.1JDBC搭建步骤3.2详细演示 3.3核心API3.3.1Driver​3.3.2 Connection​3.3.3Statament​3.3.4PreparedStatement3.3.5Res......
  • huggingface上数据集常用格式Parquet及调用
    Parquet格式解释及词解Parquet,中文通常翻译为帕奎或帕凯,是一种高效的列式存储格式。为什么叫Parquet?Parquet这个词源自法语,指的是一种镶木地板。这种地板是由许多小块木块拼凑而成的,每个木块代表一个数据列。这种比喻形象地说明了Parquet格式的存储方式。Parquet的特点和优......
  • JPEGWD数据集,焊接缺陷检测NDT专用数据集RGB钢板焊缝缺陷识别任务和分类任务数据集(JPEG
    项目背景:焊接是制造业中的关键工艺之一,焊接质量的好坏直接影响到产品的安全性和可靠性。焊接缺陷检测(Non-DestructiveTesting,NDT)是确保焊接质量的重要手段。传统的焊接缺陷检测方法依赖于人工目视检查,效率低下且易受主观因素影响。近年来,随着计算机视觉技术的发展,基于机器......
  • 道路裂缝,坑洼,病害数据集-包括无人机视角,摩托车视角,车辆视角覆盖道路
    道路裂缝,坑洼,病害数据集包括无人机视角,摩托车视角,车辆视角覆盖道路所有问题一共有八类16000张1到7依次为:['横向裂缝','纵向裂缝','块状裂缝','龟裂','坑槽','修补网状裂缝','修补裂缝','修补坑槽']道路病害(如裂缝、坑洼等)不仅影响行车安全,还会缩短道路使用寿命......
  • 【理论篇】数据挖掘 第六章 挖掘频繁模式、关联和相关性:基本概念和方法(下)
    说明:文章为《数据挖掘:概念与技术原书第03版》的学习笔记,该书是数据挖掘领域的经典之作,想了解更多内容请参阅原著。首先祝大家中秋快乐,本文章接上篇【理论篇】数据挖掘第六章挖掘频繁模式、关联和相关性:基本概念和方法(上)思考:满足最小支持度和最小置信度的模式一定是有趣......
  • 【数据分享】1975-2020年人口密度POP栅格数据
    数据来源GHS-POP空间栅格产品(GHS-POP_GLOBE_R2023)描绘了人口的分布,表示为每个单元的人数。这个数据集描述了人口的分布和密度,以每个单元的人数表示,1975年-2020年,五年间隔,空间分辨率1000m.官网下载地址:https://human-settlement.emergency.copernicus.eu/download.php?ds=po......
  • 【数据分享】1985-2023年30米CLCD土地覆盖栅格数据分享
    1.数据来源​CLCD反映了中国快速的城市化进程和一系列生态工程,揭示了气候变化条件下人为对LC的影响,其在全球变化研究中具有潜在应用价值。2021年7月,武汉大学杨杰、黄昕两位教授共同撰写题为《30mannuallandcoveranditsdynamicsinChinafrom1990to2019》的研究论......
  • Js高级总结1 JavaScript数据类型
    文章目录数据类型判断引用变量赋值问题js引擎如何管理内存对象函数生命周期回调函数前端立即执行函数(IIFE)闭包函数中的this数据类型1.1基本数据类型string:任意字符串number:任意数字null:nullboolean:true/falseundefined:undefined1.2对象类型object:任意对......
  • 数据结构-树和二叉树
      树和二叉树 1.树的概念   树tree     是n(n>=0)个节点的有限集    在任意的一个非空树中       (1)有且仅有一个特定的被称为根(root)的节点       (2)当n>1时,其余的节点可分为m(m>0)个互不相交的有限......
  • 【MySQL】—— 数据库操作、数据表操作
    文章目录:前言一、SQL简介SQLMySQL二、数据库(数据集合)操作1.连接服务器2.创建数据库3.查看数据库4.选中数据库5.删除数据库三、数据表操作1.MySQL中常用数据类型整形和浮点型字符串类型时间日期2.创建表3.查看表4.查看表结构5.删除表前言九月......