【学习笔记】pytorch实战手写数字识别

搭建简单的卷积神经网络实现手写数字图片识别。
1. torch和torchvision
在Pytorch中有两个核心的包,分别是torch和torchvision。torchvision包主要功能是实现数据的处理、导入和预览等,在处理计算机视觉问题时可以使用torchvision包中的类完成相应工作。导包部分如下:

import torch
from torchvision import datasets, transforms
from torch.autograd import Variable

之后,需要获取手写数字的训练集和测试集。使用torchvision.datasets可以实现对本次需要数据集的训练集和测试集的下载。常用数据及如MNIST,COCO,ImageNet,CIFCAR等都可以通过这个方法快速下载和载入,代码如下:

data_train = datasets.MNIST(root = "./data/",
							transform = transform,
							train = True,
							download = True)
							
data_test = datasets.MNIST(root = "./data/",
							transform = transform,
							train = False)

其中root用于指定数据集在下载之后的存放路径,这里放在根目录下的data文件夹中;transform用于指定导入数据集时需要对数据进行哪种变换操作;train用于指定在数据集下载完成后需要载入哪部分数据,如果为True则说明载入的是训练集部分,如果为False说明载入的是测试集部分。
2.torch.transforms
在transforms中有大量的数据变换类,其中很大一部分可以用于实现数据增强(对图片放大,缩小,水平或垂直翻转等变换)。对手写数据集数据进行载入及相应变化的代码为:

transform = transforms.Compose([transforms.ToTensor(),
								transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.5,0.5,0.5])])

可以将以上代码中compose类看作一种容器,他能够同时对多种数据变换进行组合。传入的参数是一个列表,列表中的元素就是对载入的数据进行的各种变换操作。在以上代码中,compose里只使用了一个类型的转换变换transforms.ToTensor和一个数据标准化变换transforms.Normalize。这个标准化变换也叫标准差变换法,使用原始数据的均值和标准差来进行数据的标准化,再经过标准化变换之后,数据全部符合均值为0、标准差为1的标准正态分布。计算公式如下: x n o r m a l = x − m e a n s t d x^{normal}=\frac{x-mean}{std} xnormal=

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值