深度学习pytorch入门实战

1. torch和torchvision

这两个都是putorch中常用的包,之前已经使用了很多torch的内容,下面我们介绍一下torchvision
torchvision包的朱要功能是实现数据的处理,导入和预览等,所以对于计算机视觉的相关处理非常方便

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

首先导入必要的包,在这里我们只需用到torchvision中的datasets和transforms两个包,因此只导入了他们两个,随后进行数据集的下载,使用datasets加上需要下载的数据集名称可以比较方便地下载,我们要使用的数据集叫做MINIST

transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,),(0.5,))])
data_train=datasets.MNIST(root='./data/',transform=transform,train=True,download=True)
data_test=datasets.MNIST(root='./data/',transform=transform,train=False)

root用于指定下载后的存放路径,transform用于指定导入数据集时对数据进行哪种变换,train用于指定下载完成后需要载入哪些数据,如果为true就说明是训练集,需要载入,如果是false就是测试集
下面介绍transforms

2.torch.transforms

transforms对载入的数据进行变换,举个例子,如果需要载入的数据集都是图片,那么实际计算中必须转化为tensor张量才能处理,或者是图片大小格式不一样,都可以使用transforms提供的操作进行归一化
transforms中有很大一部分可以用于数据增强,如果我们的数据集非常有限,那么就需要对已有数据进行翻转,裁剪等系列操作,来丰富数据集这里我们使用的数据集完全足够,因此不需要数据增强

我们将上面代码中的torchvision.tansforms.Compose看作一种容器,他能够对多种数据组合进行变换,传入的参数是一个列表,列表中的元素就是对载入的数据进行各种变换操作,在上述代码中,compose中用了一个类型转换操作ToTensor和一个数据标准化操作Normalize,这里使用的标准化变换也叫做标准差变换法,这种方式需要使用原始数据的均值mean和标准差来进行数据的标准化,变换之后数据满足均值为零,标准差为1的标准正态分布,不过这里我们指定的均值mean和标准差std都不是原始数据的,而是自行定义的,不过仍然能完成标准化操作,注意,此处定义的均值和标准差两个参数必须是一维的,因为MNIST图像是灰度的而不是RGB彩色图,因此只有一个图像通道,所以在归一化的时候只能定义一维的参数,否则不匹配,后面会报错下面列举一下transforms中的数据变换操作:

  • Resize:用于图片数据的缩放,参数是一个整形数据也可以是(h,w)的序列,分别代表缩放的宽度和高度,只指定一个参数就是高度和宽度都等于这个参数
  • Scale:同Resize
  • CenterCrop:保持图片中心进行裁剪,参数以及意义同Resize
  • RandomCrop:随机裁剪,参数同上
  • RandomHorizontalFlip:按随机概率进行水平翻转,参数是概率值,默认为0.5
  • RandomVerticalFlip:竖直反转,同上
  • ToTensor:将PILImage转换为tensor类型
  • ToPILImage:将tensor转化为PILImage类型,方便内容的显示

3. 数据预览和装载

再数据载入后还要进行装载,可以理解为数据的载入就是对图片的处理,处理完之后装载就是打包发送给我们的训练模型

data_loader_train=torch.utils.data.DataLoader(dataset=data_train,batch_size=64
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值