深度学习 实验指导书汇总 实验1--8:手写数字识别实验指导书---基于CNN-Transformer的图像描述实验指导书.docx

深度学习 实验指导书汇总 实验1--8:手写数字识别实验指导书---基于CNN-Transformer的图像描述实验指导书.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

实验一手写数字识别

PAGE2

深度学习实验指导书

PAGE2

实验一手写数字识别

实验目的

掌握卷积神经网络基本原理;

掌握PyTorch(或其他框架)的基本用法以及构建卷积网络的基本操作;

了解PyTorch(或其他框架)在GPU上的使用方法。

实验要求

搭建PyTorch(或其他框架)环境;

构建一个规范的卷积神经网络组织结构;

在MNIST手写数字数据集上进行训练和评估,实现测试集准确率达到98%及以上;

按规定时间在课程网站提交实验报告、代码以及PPT。

实验原理(以PyTorch为例)

PyTorch基本用法:

使用PyTorch,必须了解PyTorch:

张量的创建与使用

数据创建和数据加载

数据增强

网络模型创建

使用torch.autograd自动求梯度

模型参数优化

模型加载与保存

PyTorch的前身是Torch,其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了Python接口。它是由Torch7团队开发,是一个以Python优先的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络。

卷积神经网络:

典型的卷积神经网络由卷积层、池化层、激活函数层交替组合构成,因此可将其视为一种层次模型,形象地体现了深度学习中“深度”之所在。

卷积操作

卷积运算是卷积神经网络的核心操作,给定二维的图像I作为输入,二维卷积核K,卷积运算可表示为:

(1)

给定5×5输入矩阵、3×3卷积核,相应的卷积操作如图1所示。

图1卷积运算

在使用TensorFlow等深度学习框架时,卷积层会有padding参数,常用的有两种选择,一个是“valid”,一个是“same”。前者是不进行填充,后者则是进行数据填充并保证输出与输入具有相同尺寸。

构建卷积或池化神经网络时,卷积步长也是一个很重要的基本参数。它控制了每个操作在特征图上的执行间隔。

池化操作

池化操作使用某位置相邻输出的总体统计特征作为该位置的输出,常用最大池化(max-pooling)和均值池化(average-pooling)。池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步长以及池化类型。池化操作示意如图2所示。

图2池化操作

激活函数层

卷积操作可视为对输入数值进行线性计算发挥线性映射的作用。激活函数的引入,则增强了深度网络的非线性表达能力,从而提高了模型的学习能力。常用的激活函数有sigmoid、tanh和ReLU函数。

实验所用工具及数据集

工具

Anaconda、PyTorch

(PyTorch安装教程参考:PyTorch官网:/)

数据集

MNIST手写数字数据集

(下载地址及相关介绍:/exdb/mnist/)

实验步骤与方法(以PyTorch为例)

安装实验环境,包括Anaconda、PyTorch,若使用GPU还需要安装cuda、cudnn;

下载MNIST手写数字数据集;

加载MNIST数据;

构建模型;

用class类来建立CNN模型

CNN流程: 卷积(Conv2d)-激励函数(ReLU)-池化(MaxPooling)-

卷积(Conv2d)-激励函数(ReLU)-池化(MaxPooling)-

展平多维的卷积成的特征图-接入全连接层(Linear)-输出

创建优化器和损失函数;

训练和评估模型。

实验二:基于ViT的CIFAR10图像分类

一、实验目的

学习如何使用深度学习框架来实现和训练一个ViT模型,以及ViT中的Attention机制。

进一步掌握使用深度学习框架完成任务的具体流程:如读取数据、构造网络、训练模型和测试模型等。

二、实验要求

基于Python语言和任意一种深度学习框架(实验指导书中使用PyTorch框架进行介绍),从零开始一步步完成数据读取、网络构建、模型训练和模型测试等过程,最终实现一个可以完成基于ViT的CIFAR10图像分类任务的程序。

在CIFAR10数据集上进行训练和评估,实现测试集准确率达到90%以上。

按照规定时间在课程网站上提交实验报告,代码和PPT。

三、实验原理

ViT相关概念和原理参考《深度学习》课程讲授内容,VIT首次将Transformer模型运用到计算机视觉领域并且取得了不错的分类效果,模型架构图如图1所示。从图1可以看出VIT只用了Transformer模型的编码器部分,并未涉及解码器。ViT架构由三部分组成:(1)图像特征嵌入模块;(2)Transformer编码器模块;(3)MLP分类模块。ViT的组成模块详细介绍如下:

图1ViT的架构

(1)图像特征嵌入模块:标准的ViT模型对图像的输入尺寸有要求,必须为

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档