【深度学习】PyTorch:手写数字识别

embedded/2025/1/15 6:32:23/

在这个技术博客中,我们将一起探索如何使用PyTorch来实现一个手写数字识别系统。这个系统将基于经典的MNIST数据集,这是一个包含60,000个训练样本和10,000个测试样本的手写数字(0-9)数据库。通过这个项目,你将了解如何使用PyTorch进行深度学习模型的构建、训练和评估。

文章目录

  • 1. 环境准备
  • 2. 数据集加载
  • 3. 模型构建
  • 4. 模型训练
  • 5. 模型评估
  • 6. 可视化结果
  • 7. 总结

1. 环境准备

首先,我们需要确保安装了PyTorch和其他必要的库。你可以使用以下命令安装:

pip install torch torchvision matplotlib

接下来,我们需要导入相关的库:

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
import torchvision.transforms as transformsimport matplotlib.pyplot as plt

2. 数据集加载

我们将使用torchvision库来加载MNIST数据集。数据集会被转换为PyTorch张量,并且我们会对图像进行归一化处理,使其值在0到1之间。


# 定义数据转换
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))
])# 下载并加载训练集
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)# 下载并加载测试集
testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)testloader = torch

http://www.ppmy.cn/embedded/154042.html

相关文章

问题记录-Linux 下.sh脚本中变量不识别-2025-1-14

源文件: CROSS_COMPILE=/opt/cross_chain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- CC = $(CROSS_COMPILE)g++ 运行 ./auto.sh: line 4: CROSS_COMPILE: command not found ./auto.sh: line 4: CC: command not found 分析: 在 sh 脚本中…

Linux 高级路由 —— 筑梦之路

Linux 高级路由详解 本文将基于您提供的 Linux 高级路由极简教程 文章,深入探讨 Linux 高级路由的概念、配置方法以及应用场景。 一、什么是 Linux 高级路由? Linux 高级路由是指利用 Linux 内核提供的强大网络功能,实现超越传统路由表和默…

鸿蒙面试 2025-01-11

ArkTs 和TS的关系? ArkTS(方舟开发语言)与 TypeScript(TS)存在紧密联系,同时也有显著区别: 联系 语法基础:ArkTS 在语法层面大量借鉴了 TypeScript ,TypeScript 里诸如…

SOLID原则学习,接口隔离原则(Interface Segregation Principle, ISP)

文章目录 1. 定义2. 为什么要遵循接口隔离原则?3. 违反接口隔离原则的例子4. 遵循接口隔离原则的改进5. 总结 1. 定义 接口隔离原则(Interface Segregation Principle, ISP) 接口隔离原则是面向对象设计中的五大原则(SOLID&#…

Deep Attentional Guided Image Filtering

This work achieved the first place in the real depth map SR challenge held in ACM ICMR 2021. 目的:从一个target image(如低分辨的深度图)和guidance image(如高分辨的RGB图),得到输出(如高分辨的深度图)。 主要思想是考虑了target和guidance之间的…

【9.3】树结构-恢复二叉搜索树

一、题目 给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 示例 1: 输入:root [1,3,null,null,2] 输出:[3,1,null,null,2] 解释:3 不能是…

Linux标准IOday5

1:思维导图 2:有一个隧道&#xff0c;长1000m&#xff0c;有一辆高铁&#xff0c;每秒100米&#xff0c;有一辆快车&#xff0c;每秒50m&#xff0c;要求模拟这两列火车通过隧道的场景 #include <stdio.h>#include <string.h>#include <unistd.h>#include &l…

Kotlin 快速上手指南:从安装 IntelliJ IDEA 到编写第一个程序

文章目录 什么是kotlinIntelliJ IDEA安装 IntelliJ IDEA创建 Kotlin 项目运行 Kotlin 程序更改进入后默认打开上一次项目的设置打开 IntelliJ IDEA进入设置:重新启动 IntelliJ IDEA:快速学习Kotlin变量声明类型推断条件表达式定义函数单表达式函数when 表达式when 语句的基本…