pytorch test单张图片_用PyTorch实现MNIST手写数字识别(非常详细)

本文在PyTorch中构建一个简单的卷积神经网络,使用MNIST数据集训练它识别手写数字。介绍了环境设置、数据准备、网络构建、模型训练、性能评估和检查点的持续训练过程。
摘要由CSDN通过智能技术生成

7aaabbbe787046e6433298d2e104b74d.png

原文链接:

https://nextjournal.com/gkoehler/pytorch-mnist​nextjournal.com

欢迎关注公众号:xfxuezhang

hello大家好!我又来搬文章了!

7e74e282e4ae274d4152549215313eb8.png

MNIST可以说是机器学习入门的hello word了!导师一般第一个就让你研究MNIST,研究透了,也算基本入门了。好的,今天就来扯一扯学一学。

68a60fb776a77111faf12e23b7493fd5.png

在本文中,我们将在PyTorch中构建一个简单的卷积神经网络,并使用MNIST数据集训练它识别手写数字。在MNIST数据集上训练分类器可以看作是图像识别的“hello world”。

MNIST包含70,000张手写数字图像: 60,000张用于培训,10,000张用于测试。图像是灰度的,28x28像素的,并且居中的,以减少预处理和加快运行。

设置环境

在本文中,我们将使用PyTorch训练一个卷积神经网络来识别MNIST的手写数字。PyTorch是一个非常流行的深度学习框架,比如Tensorflow、CNTK和caffe2。但是与其他框架不同的是,PyTorch具有动态执行图,这意味着计算图是动态创建的。

先去官网上根据指南在PC上装好PyTorch环境,然后引入库。

import torch
import torchvision
from torch.utils.data import DataLoader

准备数据集

导入就绪后,我们可以继续准备将要使用的数据。但在那之前,我们将定义超参数,我们将使用的实验。在这里,epoch的数量定义了我们将循环整个训练数据集的次数,而learning_rate和momentum是我们稍后将使用的优化器的超参数。

n_epochs = 3
batch_size_train = 64
batch_size_test = 1000
learning_rate = 0.01
momentum = 0.5
log_interval = 10
random_seed = 1
torch.manual_seed(random_seed)

对于可重复的实验,我们必须为任何使用随机数产生的东西设置随机种子——如numpy和random!

现在我们还需要数据集的dataloader。这就是TorchVision发挥作用的地方。它让我们用一种方便的方式来加载MNIST数据集。我们将使用batch_size=64进行训练,并使用size=1000对这个数据集进行测试。下面的Normalize()转换使用的值0.1307和0.3081是MNIST数据集的全局平均值和标准偏差,这里我们将它们作为给定值。

TorchVision提供了许多方便的转换,比如裁剪或标准化。

train_loader = torch.utils.data.DataLoader(
  torchvision.datasets.MNIST('./data/', train=True, download=True,
                             transform=torchvision.transforms.Compose([
                               torchvision.transforms.ToTensor(),
                               torchvision.transforms.Normalize(
                                 (0.1307,), (0.3081,))
                             ])),
  batch_size=batch_size_train, shuffle=True)
test_loader = torch.utils.data.DataLoader(
  torchvision.datasets.MNIST('./data/&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值