版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
备课日期:年月日授课时间课时(理论+实验)周次星期:节次:授课课题深度学习[实践]教学目标1.了解PyTorch框架的安装方法。2.掌握PyTorch框架基本操作方法。教学重点1.PyTorch框架基本操作;2.利用PyTorch框架构建深度学习模型的基本流程。教学准备PPT、点名册等。教学方法实例演示。教学过程设计备注课题引入【思考】如何构建深度学习模型?【关键】PyTorch框架是由Facebook开源的基于Python语言的深度神经网络框架,不但可灵活、动态地构建神经网络,而且可通过张量计算实现强大的GPU加速。【时间】分钟。教学步骤及主要内容【主板书】§14.PyTorch框架一、概述【主板书】概述1.发展历程:2017年1月,Facebook人工智能研究院(FAIR)基于Torch(由丰富机器学习算法支持的科学计算框架)推出。2.主要特点:(1)通过高维数组(张量)、自动求导(变量)与神经网络(层/模块)等三级抽象层次实现神经网络的构建,思路明晰、结构简洁。(2)与Tensorflow的静态计算图不同,PyTorch的计算图是动态的(即可以根据计算需要实时改变计算图)。(3)利用GPU运算加速以提高深度神经网络的训练与测试的效率。【时间】分钟。【提问】。二、安装与配置【主板书】安装与配置利用Ananconda环境可快速实现PyTorch框架的安装与配置。1.搭建Anaconda环境:演示。▲Anaconda提供库或包管理与环境管理的功能,可以方便地解决Python并存、切换以及各种第三方包安装与相互连接等问题。Anaconda包含了Numpy、Scipy、Pandas、Python等720左右涉及机器学习、数据可视化等科学计算开源包及其依赖项。2.Anaconda常用命令:启动程序组中的AnacondaPrompt程序。创建虚拟环境:condacreate--nameXXXpython=XXX激活虚拟环境:condaactivateXXX查看已安装的包:condalist查看指定虚拟环境下已安装的包:condalist-XXX查看所有的环境:condaenvlist关闭当前虚拟环境:condadeactivate更新指定包:condaupdateXXX安装包:condainstallXXX卸载指定包:condauninstallXXX删除虚拟环境:condaremove--nameDL–all删除没用的包:condaclean-p删除所有包:condaclean-y–all复制虚拟环境:condacreate--namenewname–cloneoldname3.安装PyTorch。【演示】(1)命令生成方式:/。(2)命令的运行方式:Anaconda命令窗口。【强化与拓展】安装源无法连接时的解决方法:通过“win+R”快捷键打开”运行”框后输入“%HOMEPATH%”执行,然后找到并打开.condarc文件,将相关数据源链接复制相关位置即可。【时间】分钟。【提问】。三、数据类型与基本操作【主板书】数据类型与基本操作1.张量:Pytorch框架最基本的操作对象为张量(Tensor),其在结构上与Numpy库中的多维数组类似,但可以利用GPU加速其数值计算。〖PPT〗演示:张量基本操作。(1)定义矩阵:全0矩阵、全1矩阵、随机矩阵。(2)获取Tensor的尺寸:x.shape与x.size()。(3)_在方法中的意义:表示对自身的改变。(4)索引:x[:,1]。(5)改变形状:view()函数。(6)维度增加与降低:unsqueeze()与squeeze()函数。(7)Tensor与Numpy之间转换:例1.Numpy转化为Tensor:torch.from_numpy(numpy矩阵)。A=np.array([[1,2],[3,4],[5,6]])torch_A=torch.from_numpy(A)print(torch_A)例2.Tensor转化为numpy:Tensor矩阵.numpy()。A=torch.randn((3,2))#随机矩阵numpy_A=A.numpy()#转换为Numpy矩阵print(numpy_A)2.变量:Pytorch框架最重为的数据类型为变量(Variable),其在张量的基础上可实现输入数据或模型的自动求导、误差的反向传播等功能,在计算图的构建中具有极为重要的作用。(1)基本属性data属性:表示当前变量保存的数据,可通过data属性访问。grad属性:累计与保存针对变量的梯度或求导结果。creator属性:Variable的操作(比如乘法或者加法等)。(2)相关库的导入fromtorch.autogradimportVariable〖PPT〗演示:变量定义。【副板书】推导函数求导过程。importtorchfromtorch.autogradimportVariable#定义三个变量x=Variable(torch.Tensor([1,2,3]),requires_grad=True)w=Variable(torch.Tensor([2,3,4]),requires_grad=True)b=Variable(torch.Tensor([3,4,5]),requires_grad=True)#构建计算图(y=w*x^2+b)y=w*x*x+b#自动求导,计算梯度y.backward(torch.Tensor([1,1,1]))#输出求结果print(x.grad)#x.grad=2wxprint(w.grad)#w.grad=x^2print(b.grad)#b.grad=13.自动求导:在定义变量时将参数requires_grad设置为True的目的在于自动实现对指定变量的求导。【强化与拓展】张量的前向传播操作将构造一个计算图以用于计算神经网络中反向传播时的梯度。4.计算图:计算图是描述运算的有向无环图(节点为表示数据的向量、矩阵与张量,边为表示运算的由输出张量到输入张量的映射函数)。【强化与拓展】采用运算图的优势在于可使自动求导或梯度计算更加方便、快捷。例3.自动求导与计算图。问题:利用数据(x,label)={(1,5),(2,10),(3,15)}拟合直线(真实直线:y=5*x)。(1)前向传播:由x求取y。(2)计算图:y=w*xy=w*xwx(3)损失函数:L(4)误差反向传播:利用backward()函数实现。【副板书】描述关键步骤。importtorchfromtorch.autogradimportVariablex=torch.Tensor([2])#输入y=torch.Tensor([10])#输出loss=torch.nn.MSELoss()#均方误差w=Variable(torch.randn(1),requires_grad=True)#初始化参数print(w)foriinrange(10):#迭代10次y_=w*xl=loss(y,y_)l.backward()print(w.grad.data)w=Variable(w-0.1*w.grad.data,requires_grad=True)print(w)print(-2*x*(y-y_))【时间】分钟。【提问】。四、nn.Module类【主板书】nn.Module类PyTorch框架在自定义网络的时候,需要继承nn.Module类并重新实现构造函数__init__构造函数和forward这两个方法。【强化与拓展】(1)通常把神经网络中具有可学习参数的层(如全连接层、卷积层等)放在构造函数__init__()中。(2)不具有可学习参数的层(如ReLU、dropout、BatchNormanation层)如果不放在构造函数__init__()里面,则在forward()方法里面可以使用nn.functional代替。(3)forward()方法是实现神经网络各层之间连接关系的核心,必须要重写。〖PPT〗演示:nn.Module类的使用。【时间】分钟。【提问】。五、Sequential类【主板书】nn.Module类Sequential继承自Module类,其相当于一个可包含多个层的容器以方便神经网络的构建。1.利用Sequential类构建简单的网络。【强化与拓展】在Sequential类实例化时将不同类型的层按指定顺序排列以作为相关参数而构建网络。2.利用Sequential类构建具有层名称的网络。【强化与拓展】在Sequential类实例化时为每个构成层指定相应的名称;此时需要导入OrderedDict库。3.利用Sequential类增量式构建具有层名称的网络。【强化与拓展】首先实例化无参Sequential对象,然后通add_module()增量式地构建相应的层。【时间】分钟。【提问】。六、Optim类【主板书】Optim类1.主要功能:更新模型参数。2.常用类型:AdaGrad、RMSProp、Adam等。【时间】分钟。【提问】。七、构建神经网络的基本步骤【主板书】构建神经网络的基本步骤利用PyTorch构建神经网络的基本步骤如下:1.定义模型:利用Sequential类或自定义类等方式定义模型结构。(1)通过Sequential类定义(2)通过定义类2.定义损失函数。3.定义优化器。4.网络训练。5.网络测试。6.保存与载入。【强化与拓展】保存与载入模型torch.save(net,file)net=torch.load(file)#只保存与载入网络模型参数(速度快,占内存少)torch.save(model.state_dict(),file)net=Model()net.load_state_dict(file)〖PPT〗演示:自定义两层神经网络。【时间】分钟。【提问】。课堂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职园艺技术(果树修剪技术)试题及答案
- 2025年高职(药品经营与管理)药品销售专项测试题及答案
- 2025年中职口腔技术(口腔修复材料选择)试题及答案
- 2025年大学大一(农业电气化与自动化)电力系统分析阶段测试题及答案
- 2025年高职(物联网应用技术)物联网应用案例实务试题及答案
- 2025年中职(旅游管理专业)旅游景区管理试题及答案
- 2025年高职水污染控制技术(治理技术)试题及答案
- 2025年中职(大数据与会计)出纳实务操作试题及答案
- 2025年中职(水族科学与技术)水族养殖阶段测试试题及答案
- 2026年网页设计教学(网页设计方法)试题及答案
- 中药外洗治疗化疗导致外周神经毒课件
- 2025-2026学年人教版(新教材)小学数学三年级下册(全册)教学设计(附目录P208)
- 2026年孝昌县供水有限公司公开招聘正式员工备考题库及参考答案详解一套
- 2025版中国慢性乙型肝炎防治指南
- 2026年及未来5年市场数据中国草酸行业发展前景预测及投资战略数据分析研究报告
- 临床技能培训中的教学理念更新
- 2025年太原理工大学马克思主义基本原理概论期末考试参考题库
- 2026届广东东莞七校高三上学期12月联考政治试题含答案
- 感染科结核病防治培训指南
- 思想政治教育研究课题申报书
- 开发区再生水资源化利用建设项目可行性研究报告
评论
0/150
提交评论