- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
基于深度学习的图像分类任务实现 (⼀)线性分类器全连接⼈⼯神经⽹络分类器 
实现多 对Cifar-10数据集的分类器,并⽐较其算法精度。要求基于PyTorch设计并实现四 分类器,并利⽤Cifar-10的测试集评估各分 
类器的性能: 
1.问题预处理 
1.1Cifar-10数据集简介 
CIFAR-10数据集包含airplane、automobile、bird、cat、deer、dog、frog、horse、ship、truck⼗个类别、其中每个类别有6000个 
彩⾊图像。数据集中共有50000张训练图像和10000张测试图像且每个图⽚尺⼨为3×32×32。 
1.2分类问题 
分类问题就是寻找到输⼊和输出之间的关系判断输⼊数据属于的类别 (离散值),可以是⼆分类问题、也可以是多分类问题。 
输出值不是简单地0、1、2、3、4、5、6、7、8、9,因为这些类别之间没有实数空间中数值⼤⼩的含义。输出的是概率P (0)、 
P (1)、…P (9)。概率值最⼤的项就是预测的结果。 
分类问题的求解过程如下图: 
1.3创建图像分类器 
在利⽤pytorch进⾏模型构造与训练时,总体思路分为四个阶段: 
数据集准备、⽤类设计模型、构造损失函数和优化器、训练模型+测试。 
如下图所⽰ 
2.⽤pytorch的逻辑回归实现图像分类 
我们使⽤逻辑回归模型,与线性回归模型类似,使⽤nn.Linear加载模型。 
#导⼊包 
import torch 
import torchvision 
from torch import nn 
from torchvision.transforms import transforms 
from torch.utils.data.dataloader import  DataLoader 
import numpy as np 
#数据集导⼊ 
batch_size=64 
#transforms 定义了⼀系列数据转化形式,并对数据进⾏预处理。 
import torchvision.transforms as transforms 
transform=transforms.Compose([transforms.     o  ensor(), #传⼊数据转化成张量形式 
transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))]) #均值 ⽅差为0.5 
#dataset下载数据集 
trainset=torchvision.datasets.CIFAR10(root=./data,train= rue,download=   rue,transform=transforms.   o  ensor()) 
# root(string) 数据集的根⽬录在哪⾥ 
#  train(bool, op tional) : 如果为True,则创建数据集training.p t,否则创建数据集test.p t。 
# download(bool,op tional) : 如果为True,则从Internet下载数据集并将其放在根⽬录中,如果已下载数据集,则不会再次下载。 
#  transform(callable, op tional) :  ⼀个函数/转化,它接受PI  图像并返回转换后的版本 
#  target_ transform(callable, op tional) : 接受⽬标并对其进⾏转换的函数 
#dataloader将下载好的数据集分块作为模型的输⼊ 
trainloader=torch.utils.data.DataLoader(trainset, batch_size, shuffle= rue, num_workers=1) 
#dataset(dataset) : 输⼊的数据类型 
#batch_ size(int) : 每次输⼊数据的⾏数,默认为1 
#shuffle  (bool) : 洗牌,默认设置为False。在每次迭代训练时是否将数据洗牌,默认设置为False, 
#将输⼊数据的顺序打乱,是为了使数据更有独⽴性。 
#num_ workers(int) :   ⼯作者数量,默认为0。使⽤多少个⼦进程来导⼊数据。 
testset=torchvision.datasets.CIFAR10(root=./data,train=False,download=   rue,transform=transforms.   o  ensor()) 
testloader=torch.utils.data.DataLoader(testset, batch_size, shuffle=False, num_workers=1)
                 原创力文档
原创力文档 
                        

文档评论(0)