6.2 PyTorch图像的多分类--手写字体识别

欢迎订阅本专栏:《PyTorch深度学习实践》
订阅地址:https://blog.csdn.net/sinat_33761963/category_9720080.html

  • 第二章:认识Tensor的类型、创建、存储、api等,打好Tensor的基础,是进行PyTorch深度学习实践的重中之重的基础。
  • 第三章:学习PyTorch如何读入各种外部数据
  • 第四章:利用PyTorch从头到尾创建、训练、评估一个模型,理解与熟悉PyTorch实现模型的每个步骤,用到的模块与方法。
  • 第五章:学习如何利用PyTorch提供的3种方法去创建各种模型结构。
  • 第六章:利用PyTorch实现简单与经典的模型全过程:简单二分类、手写字体识别、词向量的实现、自编码器实现。
  • 第七章:利用PyTorch实现复杂模型:翻译机(nlp领域)、生成对抗网络(GAN)、强化学习(RL)、风格迁移(cv领域)。
  • 第八章:PyTorch的其他高级用法:模型在不同框架之间的迁移、可视化、多个GPU并行计算。

LeNet网络,做图像的同学肯定超级熟悉,这是1998年提出的一种卷积神经网络,当时风靡于手写数字识别。

关于它的理论知识于网络结构,可以参看我的博客:,也可以在网上搜索,有非常多的文章来介绍这个经典的模型。

Letent的模型结构由卷积-池化-卷积-池化-全连接-全连接-高斯连接这几个步骤组成。现在我们来一起看看如何构建LeNet,并进行手写数字的识别。

6.2.1 准备数据集

MINST是一个手写数字数据库,官网地址为:http://yann.kecun.com/exdb/mnist, 他是非常经典的一个数据集,由60000张训练样本,10000张测试样本,每张图片的尺寸是28*28。

由于这是一个很经典的用于学习和练习的数据集,PyTorch提供了快速下载和加载NIMIST数据集的方法,无需我们自己去官网下载了。torchvision就是PyTorch准们便些的处理图像的工具包,其中包含了图像预处理,加载等的方法,还包括一些经过预训练的经典卷积神经网络模型。现在我们来用Torchvision来下载、加载、预处理MINIST数据集。

import torch
from torchvision import datasets, transforms
import torch.utils.data as Data

# 转换特征
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,),(0.3081,))
])

# 下载、加载、预处理数据
trainset = datasets.MNIST('data', train=True, download=True, transform=transform)
testset = datasets.MNIST('data', train=False, download=True, transform=transform)

# 转换成批量迭代器:DataLoader
trainloader = torch.utils.data.dataLoader(trainset, batch_size=4, shuffle=True, num_work=2)
testloader = torch.utils.data.dataLoader(testset, batch_size=4, shuffle=False, num_work=2)

解释:

(1)torchvision.transforms.Compose()是用来设置预处理的方法,其参数是一个list,list中是预处理方法。

(2)datasets.M

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值