代码编织梦想

引言 | Introduction

MNIST 数据集是最经典的一个机器学习的数据集,常被视为图像分类问题的入门级数据。虽然 Python 的很多第三方包都对其进行了封装,但对于模型训练来说,我们常用的还是本地的数据。今天教大家如何提取 MNIST 数据到本地。

安装 | Install

pip install torchvision==0.11.2 tqdm==4.54.1

方法 | Method

我们利用 torchvision 包封装的 MNIST 数据集来提取图片到本地。MNIST 数据集是一个典型的多分类数据集,其中存放的是 7 万张手写数字的灰度图片(6 万训练和1 万测试),每张灰度图片的大小是 28×28。共有 10 类标签,分别对应数字 0-9。

一般来说,我们回将整个数据集按照 8:1:1 的比例(或其他比例)划分为 3 个子集:训练集,验证集和测试集。MNIST 官方只划分了两个子集,笔者自认为不太合理,故提取到本地时没有单独的创建 train 和 test 子文件夹来存放图片,不过在图片名称前加了 train 和 test 字样,以标识该图片是从哪个子数据集中获取的。

下方给出了具体的实现代码。您需要安装两个第三方 Python 包:torchvision 和 tqdm,然后给定数据在本地保存的文件夹路径,运行代码即可。

代码 | Code

import os
import shutil
from tqdm import tqdm
from torchvision import datasets
from concurrent.futures import ThreadPoolExecutor


def mnist_export(root: str = './data/minst'):
    """Export MNIST data to a local folder using multi-threading.

    Args:
        root (str, optional): Path to local folder. Defaults to './data/minst'.
    """
    for i in range(10):
        os.makedirs(os.path.join(root, f'./{i}'), exist_ok=True)
    split_list = ['train', 'test']
    data = {
        split: datasets.MNIST(
            root='./tmp',
            train=split == 'train',
            download=True
        ) for split in split_list
    }
    total = sum([len(data[split]) for split in split_list])
    with tqdm(total=total) as pbar:
        with ThreadPoolExecutor() as tp:
            for split in split_list:
                for index, (image, label) in enumerate(data[split]):
                    tmp = os.path.join(root, f'{label}/{split}_{index}.png')
                    tp.submit(image.save, tmp).add_done_callback(
                        lambda func: pbar.update()
                    )
    shutil.rmtree('./tmp')


if __name__ == '__main__':
    mnist_export('./data/minst')

参考 | References

下载 | Download

https://cdn.jsdelivr.net/gh/XavierJiezou/pytorch-lstm-mnist@main/data/mnist.7z

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42951560/article/details/122569619

如何用python解析mnist图片-爱代码爱编程

1.我们首先看一下mnist的数据结构: 2. 可以看出在train-images.idx3-ubyte中,第一个数为32位的整数(魔数,图片类型的数),第二个数为32位的整数(图片的个数),第三和第四个也是32为的整数(分别代表图片的行数和列数),接下来的都是一个字节的无符号数(即像素,值域为0~255),因此,我们只需要依次获取魔数

python读取mnist文件-爱代码爱编程

MNIST MNIST是LeCun的手写数字图像库,有四个文件,移步这里下载:http://yann.lecun.com/exdb/mnist/。文件格式该页有详细介绍。 Python-mnist Sorki写了一个p

如何从tensorflow的mnist数据集导出手写体数字图片_shadown1ght的博客-爱代码爱编程

在TensorFlow的官方入门课程中,多次用到mnist数据集。 mnist数据集是一个数字手写体图片库,但它的存储格式并非常见的图片格式,所有的图片都集中保存在四个扩展名为idx3-ubyte的二进制文件。 如果我们想要知道大名鼎鼎的mnist手写体数字都长什么样子,就需要从mnist数据集中导出手写体数字图片。了解这些手写体的总体形状,也有助于加

mnist手写数字数据集读取方法_long仁的博客-爱代码爱编程_读取mnist

MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。 数据集下载网址:http://yann.lecun.com/exdb/mnist/ 数据集简介: 1、共有4数据集

tensorflow学习笔记(五)—— mnist —— 数据下载,读取_tiankong19999的博客-爱代码爱编程

教程地址:TensorFlow中文社区 MNIST数据下载 源码: tensorflow/g3doc/tutorials/mnist/ 本教程的目标是展示如何下载用于手写数字分类问题所要用到的(经典)MNIST数据集。 教程 文件 本教程需要使用以下文件: 文件目的input_data.py下载用于训练和测试的MNIST数据集的源码 备注:

(python3下)获取mnist手写数据集的图片_hare_pnk的博客-爱代码爱编程

数据集下下来应该是这样的: 我们把它们全部解压出来,得到4个没有后缀名的文件,t10k是测试集,train是训练集,image保存图像数据,label保存标签。我们要提取图片只需要用到images就好了,用sublime等打开是这样的:  images文件的第一行是文件的相关信息,00000803是魔数,用于识别文件,相当于id,0000271

动手学paddlepaddle(4):mnist(手写数字识别)_自动驾驶小学生的博客-爱代码爱编程

本次练习将使用 PaddlePaddle 来实现三种不同的分类器,用于识别手写数字。三种分类器所实现的模型分别为 Softmax 回归、多层感知器、卷积神经网络。 您将学会 实现一个基于Softmax回归的分类器,用于识别手写数字 实现一个基于多层感知器的分类器,用于识别手写数字 实现一个基于卷积神经网络的分类器,用于识别手写数字 卷

PyTorch卷积神经网络实例深度分析——以MNIST数据集为例-爱代码爱编程

目录 PyTorch构建一般深度学习网络步骤1. 配置库2.配置超参数3.加载数据集4.定义卷积网络结构模型(重点)5.模型训练6.测试集中测试模型的识别率7.运行结果 PyTorch构建一般深度学习网络步骤 加载数据集;定义网络结构模型;定义损失函数;定义优化算法;迭代训练;测试集验证。 其中,在训练阶段主要分为四个部分。1:前向过程,计算

MNIST数据集转换为图片数据集的样例程序-爱代码爱编程

一、编写背景 因为需要对接一个官方的编程API,本人需要自己按其要求搭建一个神经网络,以尝试调用某模块的工作。我参考了Tensorflow的参考书了解了MNIST数据集,然后我准备把MNIST数据集转换为图片格式,以适应API的要求。 同样,这个程序转化出的图片格式的MNIST数据集和标签集也非常适合初学者第一次搭建网络。 二、基础依赖 numpy,

python显示minst数据集图片_详解如何从TensorFlow的mnist数据集导出手写体数字图片...-爱代码爱编程

在TensorFlow的官方入门课程中,多次用到mnist数据集。 mnist数据集是一个数字手写体图片库,但它的存储格式并非常见的图片格式,所有的图片都集中保存在四个扩展名为idx3-ubyte的二进制文件。 如果我们想要知道大名鼎鼎的mnist手写体数字都长什么样子,就需要从mnist数据集中导出手写体数字图片。了解这些手写体的总体形状,也有助

MNIST手写数字识别_数据集获取与环境01-爱代码爱编程

** MNIST手写数字识别_数据集获取与环境 ** MNIST数据集中的所有图片都是28×28像素的文件。因数据集的大小统一,只需很少的数据准备工作就可以用于模型的训练。 一.数据集获取 1.MNIST数据集本地读取: 链接:https://pan.baidu.com/s/1bbZikfDpbs-On4Kk67M6tQ 提取码:b4nq 解压出

用PyTorch对以MNIST数据集进行卷积神经网络-爱代码爱编程

PyTorch构建深度学习网络一般步骤 加 载 数 据

基于TensorFlow卷积神经网络与MNIST数据集设计手写数字识别算法-爱代码爱编程

随着数字化的普及和信息技术的发展,在编号处理、数量读取、价格统计等场合,手写数字识别系统的应用需求越来越强烈,如何将数字方便、快速地输入到计算机中已成为关系到计算机技术普及的关键问题。数字识别技术的研究不仅可以解决当下面临的数字识别问题,同时在图像识别、机器学习等方面也有铺垫作用。由于手写数字识别难于建立精确的数学模型,本文基于TensorFlow卷

基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。-爱代码爱编程

本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件。 具体实现如下: 1.读入数据:运用TensorFlow深度学习框架,下载并读入mnist手写数字识别数据集。 2.构建模型:用神经元构建神经网络,定义神经网络的权重和偏置项来进行前向计算,并使用Softmax Regre