深度学习实践教程(第二版)-课件全套 第1-8章 深度学习基础-生成式对抗网络_第1页
深度学习实践教程(第二版)-课件全套 第1-8章 深度学习基础-生成式对抗网络_第2页
深度学习实践教程(第二版)-课件全套 第1-8章 深度学习基础-生成式对抗网络_第3页
深度学习实践教程(第二版)-课件全套 第1-8章 深度学习基础-生成式对抗网络_第4页
深度学习实践教程(第二版)-课件全套 第1-8章 深度学习基础-生成式对抗网络_第5页
已阅读5页,还剩425页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深度学习2026年2月27日课程简介课程性质:考查课学时:周4学时,共32学时(上机12学时)学习目地:掌握什么是深度学习等相关概念,

Pytorch框架安装,深度学习

掌握深度学习常用算法成绩评定:平时成绩30%、考试成绩70%1234

教材:《深度学习实践教程》(第二版)

吴微编著电子工业出版社5第1章深度学习基础1.1人工智能、机器学习与深度学习1.2深度学习的三大核心要素1.3神经元与深度神经网络1.4神经网络中常用的激励函数1.5深度学习强大的原因31.6常见的深度学习框架课上练习第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.1人工智能(AI)举例4

例1

一款两个月全球用户破一个亿的软件第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.1人工智能(AI)举例5例2造假三剑客1.换脸视频2.谁都是舞者3.你的声音,我也有

6第1章深度学习基础例3无人驾驶网约车第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.1人工智能简介人工智能:是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的目的:就是让计算机能够像人一样思考。人工智能的研究包括:机器人、语言识别、图像识别、自然语言处理和专家系统等。7第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.1人工智能简介人工智能有两种类型:强人工智能和弱人工智能。强人工智能:就是要使机器学习人的理解、学习和执行任务的能力。弱人工智能:指用于自动化特定任务的软件。8第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介9机器学习第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介10机器学习是怎么认识猫和狗的呢?第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介11第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介12机器学习需要一个好模型!第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介机器学习的广义概念:是指从已知数据中获得规律,并利用规律对未知数据进行预测的方法。机器学习可用于:自然语言处理、图像识别、生物信息学以及风险预测等,已在工程学、经济学以及心理学等多个领域。机器学习是一种统计学习方法,机器人和计算机等机器需要使用大量数据进行学习,从而提取出所需的信息。13第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介14第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介机器学习主要分为有监督学习(也称监督学习)和无监督学习两种。监督学习需要为机器提供一组标记数据。有监督学习通过训练,从标记数据中提取通用信息或特征信息,以此得到预测模型。监督学习的两种主要类型是分类和回归。15第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介在分类中,机器被训练成将一个组划分为特定的类。分类的一个简单例子是电子邮件账户上的垃圾邮件过滤器。16第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介在回归中,机器使用先前已标记的数据来预测未来。比如使用气象历史数据预测未来天气。17第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.2机器学习简介无监督学习分为聚类和降维。聚类用于根据属性和行为对象进行分组。这与分类不同,因为这些组,不是人为提供的。聚类的一个例子是将一个组划分成不同的子组(例如,基于年龄和婚姻状况),然后应用到有针对性的营销方案中。降维,通过找到共同点来减少数据集的变量。大多数大数据可视化使用降维来识别趋势和规则。18第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

19机器学习需要一个好模型!人工神经网络模型第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

20第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

21第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

22生物神经元细胞工作示意动画视频第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介1.人体的神经元包含树突、细胞核和轴突。2.人工神经网络中的神经元模型包含输入、计算和输

出三个部分。3.输入模拟神经元的树突,而输出模拟神经元的轴突,

计算模拟细胞核。23第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

24第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

25第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

深度学习:就是一种利用深度人工神经网络来进行自动分类、预测和学习的技术。26第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

人工神经网络是一种人类由于受到生物神经细胞结构启发而研究出的算法体系。27第1章深度学习基础1.1人工智能、机器学习与深度学习1.1.3深度学习简介

人工智能、机器学习、深度学习的关系28第1章深度学习基础1.2深度学习的三大核心要素

29第1章深度学习基础1.2深度学习的三大核心要素1.大数据30第1章深度学习基础1.2深度学习的三大核心要素2.深度网络架构所谓的深度网络架构,就是整个网络体系的构建方式和拓扑连接结构,目前最常用的有3种:全连接网络、卷积神经网络、循环神经网络和生成对抗网络。31第1章深度学习基础1.2深度学习的三大核心要素3.高性能的计算力:GPU32

NVIDIATITANRTXGPU第1章深度学习基础1.2深度学习的三大核心要素3.高性能的计算力GPU和CPU对比33CPU和GPU结构对比图第1章深度学习基础1.3神经元与深度神经网络神经元模型34

人体神经元细胞示意图第1章深度学习基础1.3神经元与深度神经网络

人体的神经元包含树突、细胞核和轴突。

人工神经网络中的神经元模型包含输入、计算和输出三个部分。

输入模拟神经元的树突,而输出模拟神经元的轴突,计算模拟细胞核35第1章深度学习基础1.3神经元与深度神经网络

36输入(树突)-计算(细胞核)-输出(轴突)第1章深度学习基础1.3神经元与深度神经网络

37

画出一个神经元模型:包含有2个输入,2个计算功能(求和与非线性函数)以及1个输出。人工神经元模型图第1章深度学习基础1.3神经元与深度神经网络

38

画出一个神经元模型:包含有2个输入,2个计算功能(求和与非线性函数)以及1个输出。

一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。第1章深度学习基础1.3神经元与深度神经网络

39神经元模型用变量符号表示输出的计算公式为Z=sign(a1*w1+a2*w2)神经元网络扩展节点下一页40x1x2计算y1x3x4计算x5x6计算y4x7x8计算y2y3深度人工神经网络示意图人工神经网络示意图第1章深度学习基础通过一个识别猫和狗的示例,来理解深度人工神经网络是如何学习的。OR第1章深度学习基础42输入算法输出z=w1*x+w2*y

第1章深度学习基础43输入算法输出第1章深度学习基础44输入算法输出正数负数第1章深度学习基础45输入算法输出正数负数修改模型!Z=3*0.76-1.86=0.42第1章深度学习基础第1章深度学习基础1.4神经网络中常用的激励函数46画出表达式对应的单层神经网络(感知机)模型。第1章深度学习基础1.4神经网络中常用的激励函数47画出表达式对应的单层神经网络(感知机)模型。线性模型都可以表达。下一页第1章深度学习基础1.4神经网络中常用的激励函数48处理据能力示意图

第1章深度学习基础1.4神经网络中常用的激励函数491.Sigmoid函数Sigmoid函数表达式:Sigmoid函数示意图

第1章深度学习基础1.4神经网络中常用的激励函数502.tanh函数tanh函数表达式:tanh函数示意图

第1章深度学习基础1.4神经网络中常用的激励函数513.ReLU函数ReLU函数表达式:y=max(0,x)ReLU函数示意图第1章深度学习基础1.4神经网络中常用的激励函数524.Elu函数Elu函数公式为:Elu函数示意图第1章深度学习基础1.4神经网络中常用的激励函数535.LeakyReLU函数LeakyReLU函数表达式:第1章深度学习基础1.4神经网络中常用的激励函数546.Maxout函数Maxout函数表达式:第1章深度学习基础1.5深度学习强大的原因主要原因有二:1.不用再提取特征

2.处理线性不可分的能力强。55第1章深度学习基础1.6常见的深度学习框架1.PyTorch2.TensorFlow3.Caffe56课堂练习(1)在图1.30的三个圆圈表示的范围中填入深度学习、人工智能、机器学习。

人工智能、机器学习、深度学习关系图课堂练习(1)在图1.30的三个圆圈表示的范围中填入深度学习、人工智能、机器学习。课堂练习(2)人工神经网络中的神经元模型包含输入、

和输出三个部分。输入模拟神经元的

,而输出模拟神经元的

模拟细胞核。答案:计算、树突、轴突、计算课堂练习(3)Sigmoid函数变化范围是:

。答案:(0,1)课堂练习(4)人工神经网络图中的箭头被称为

。答案:连接课堂练习(5)人工智能的两种类型:

。答案:强人工智能

弱人工智能。课堂练习(1)请选出不是深度学习三要素的一项(

)。A.大数据

B.深度框架

C.高性能计算力

D.高速网络访问答案:D课堂练习(2)以下是强人工智能的一项是:(

)。A.能够把原件抓取到生产线上的机器手

B.分拣快递的机器人C.指纹识别系统

D.会谱曲的机器人答案:D课堂练习(3)支持动态神经网络的深度学习框架是(

)。A.CaffeB.TensorflowC.TheanoD.PyTorch答案:D课堂练习(4)以下哪个不是常见的深度学习框架(

)。A.CaffeB.TensorflowC.TheanoD.Python答案:D课堂练习(5)监督学习的两种主要类型是(

)和回归。A.分类B.训练C.深度学习D.梯度答案:AThankYou!深度学习第2章PyTorch框架安装2.1PyTorch介绍2.2Windows下PyTorch深度学习环境的配置2.3Linux下PyTorch深度学习环境的配置2.4PyTorch开发工具70课上练习重点2.2Windows系统中PyTorch的配置2.2.1安装Python2.2.2CPU支持下PyTorch环境简单搭建2.2.3GPU支持下PyTorch环境的搭建712.2.4下载、安装、配置Anaconda2.2.5创建和使用虚拟环境2.2.6安装、设置PyCharm第2章PyTorch框架安装2.1PyTorch介绍以下是PyTorch的特点:1.简洁2.速度3.易用4.活跃的社区72第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.1安装Python

官网:/downloads/windows/73第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.1安装Python74第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.1安装Python75第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.1安装Python76接下来,进入Python环境。在cmd命令行窗口中输入:python回车后,若出现提示符“>>>”,如图所示,则表示成功进入了Python环境。第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.2CPU支持下PyTorch环境简单搭建1.登录PyTorch官网安装/772.点击GetStarted第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.2CPU支持下PyTorch环境简单搭建783.复制命令

复制“runthiscommand”后面的命令,到cmd命令窗口。第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.2CPU支持下PyTorch环境简单搭建4.检验环境是否安装成功控制台输入:python如果成功则会出现提示符“>>>”,说明进入了Python环境。

执行代码:>>>importtorch>>>a=torch.FloatTensor(2,3)>>>print(a)79第2章PyTorch框架安装2.2Windows下PyTorch深度学习环境的配置2.2.2CPU支持下PyTorch环境简单搭建4.检验环境是否安装成功80第2章PyTorch框架安装第2章PyTorch框架安装第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建1.查看是否具有GPU以NVIDIA品牌显卡为例进行介绍。查看计算机显卡的方法是:单击计算机中的“任务管理器”—“性能”—左侧栏划到最下面第2章PyTorch框架安装CUDA是ComputeUnifiedDeviceArchitecture的缩写,是由NVIDIA公司推出的一种并行计算平台和编程模型。

查看自己的GPU能够支持的最高CUDA版本,CMD终端输入命令:nvidia-smi,注意这个命令中间没有空格。发现我的计算机最高支持到CUDA12.4,如图所示。如果不显示这个界面,则需要更新显卡驱动。第2章PyTorch框架安装NVIDIA显卡中的运算平台是CUDA,而PyTorch的下载组件里也会包含一个内置的cuda。为了区分,显卡内的CUDA用大写,PyTorch内置的cuda用小写。

一般来讲,要满足:CUDA版本≥cuda版本。

查看CUDA版本的方法是:Win+R后输入cmd,进入命令提示符,输入nvcc-V。第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装CUDA下载CUDA的网址为:“/cuda-toolkit-archive”第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装CUDA点击需要下载的版本后,选择操作系统平台第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装CUDA做进一步选择:第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装CUDA接下来配置CUDA的环境变量。在桌面“搜索栏”输入“环境变量”既可以找到“编辑系统环境变量”。在弹出的“系统属性”窗口中点击“环境变量”。第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装CUDA

点击“编辑”-“新建”按钮,可新建环境变量的路径,默认路径如下:

C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDAC:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v12.4\lib\x64C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v12.4\binC:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v12.4\libnvvp第2章PyTorch框架安装2.2.3GPU支持下PyTorch环境的搭建2.安装cuDNN先在NVIDIA开发者官网(/)注册账号。然后下载。再按2.2.1节和2.2.2节方法安装PyTorch即可完成简单安装。2.2.4下载、安装、配置Anaconda1.解释一下Python、PyCharm和Anaconda和Miniconda的关系。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。从Python1.4版本开始,Python安装包中就自带了IDLE(IntegratedDevelopmentandLearningEnvironment)解释器。PyCharm是一种Python等众多语言的IDE,带有一整套可以帮助用户在使用Python等语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。Anaconda和Miniconda是广泛应用于数据科学、机器学习和科学计算领域的开源发行版,它集成了Python、R等编程语言,以及众多常用的科学计算和数据分析的第三方包,同时还提供了便捷的包管理和环境管理功能。但是不包含torch、torchvision、torchaudio。第2章PyTorch框架安装2.2.4下载、安装、配置Anaconda2.下载Anaconda从Anaconda官网/下载第2章PyTorch框架安装Anaconda官网界面图2.2.4下载、安装、配置Anaconda2.下载Anaconda也可以从清华大学开源软件镜像站(/)下载.在网站直接搜索Anaconda,点进去后选择“/archive”目录,找到想下载的Anaconda版本下载即可。深度学习实践教程第2章PyTorch框架安装2.2.4下载、安装、配置Anaconda2.安装Anaconda第2章PyTorch框架安装Anaconda安装界面图2.2.4下载、安装、配置Anaconda2.安装Anaconda第2章PyTorch框架安装Anaconda安装界面图2.2.4下载、安装、配置Anaconda2.安装Anaconda第2章PyTorch框架安装选择Anaconda安装路径图

安装路径选择。如图所示。可以按默认进行安装,也可以自定义。比如放在新建的【D:\Anaconda】里。2.2.4下载、安装、配置Anaconda2.配置Anaconda第2章PyTorch框架安装

添加Anaconda的环境变量

将【D:\Anaconda】、

【D:\Anaconda\Scripts】与【D:\Anaconda\Library\bin】添加到环境变量。注意,这里的“D:\”是因为将Anaconda安装在了D盘。2.2.5创建和使用虚拟环境1.base环境下的操作如下第2章PyTorch框架安装

在“所有应用”中选择“Anaconda”-点击“AnacondaPrompt”进入Anaconda的环境中,接下来的命令均在“AnacondaPrompt”中执行。列出所有的环境的命令:condaenvlist创建名为“环境名”的虚拟环境,并指定Python的版本的命令:condacreate-n环境名python=版本号比如:condacreate-n环境名python=3.122.2.5创建和使用虚拟环境1.base环境下的操作如下第2章PyTorch框架安装创建名为“环境名”的虚拟环境,并指定Python的版本与安装路径的命令:condacreate--prefix=安装路径\环境名python=版本号删除名为“环境名”的虚拟环境的命令:condaremove-n环境名--all进入名为“环境名”的虚拟环境的命令:condaactivate环境名2.2.5创建和使用虚拟环境2.自建虚拟环境内的操作如下。第2章PyTorch框架安装列出当前环境下的所有包的命令:condalist安装某包(某安装库),并指定版本号的命令:pipinstall包名==版本号-i地址比如在清华网站上安装NumPy包,并指定版本1.26.4命令为:

pipinstallnumpy==1.26.4-i/simple第2章PyTorch框架安装2.2.5创建和使用虚拟环境如果下载太慢:/whl/torch_stable.html

镜像源:阿里云/pypi/simple/中国科技大学/simple/豆瓣/simple/中国科学技术大学/simple/清华大学/simple/安装的语句pip3install本地地址102第2章PyTorch框架安装2.2.5创建和使用虚拟环境查看当前环境下某个包的版本(以numpy为例):pipshownumpy退出虚拟环境的命令;condadeactivate下面建立一个名为“DL”的虚拟环境。在base环境中输入命令:condacreate-nDLpython=3.12显示目前有哪些环境,输入命令:condaenvlist。结果如图所示。103第2章PyTorch框架安装2.2.6安装、设置PyCharm1.安装PyCharm104图

PyCharm社区版下载界面第2章PyTorch框架安装2.2.6安装、设置PyCharm3.PyCharm和虚拟环境连接

安装完成后进入PyCharm,单击“CreateNewProject”按钮,打开“NewProject”对话框,建立一个名为“pythonProject1”的工程,路径选在“D:\Pycharm”,如图所示。105第2章PyTorch框架安装2.2.6安装、设置PyCharm3.PyCharm和虚拟环境连接

选择Baseconda(基础Conda环境)。“Selectpath”找到Anaconda里的python.exe作为解释器。比如本书填入“D:/Anaconda/python.exe”,如图所示。106第2章PyTorch框架安装2.2.6安装、设置PyCharm3.PyCharm和虚拟环境连接

接下来,可以新建程序。在新建的工程“pythonProject1”上点右键选择“New”-“PythonFile”,输入文件名“test”,如图所示。107第2章PyTorch框架安装2.2.6安装、设置PyCharm3.PyCharm和虚拟环境连接

在程序中输入内容,会出现如图所示,需要选择Python解释器。点击“ConfigurePythoninterpreter”选择纯base环境的python解释器。程序运行结果为“helloworld”。108程序示例图

当出现需要安装新包(库)时,选择菜单栏里的“File-Setting”-“Project:pythonProject1”里面的“PythonInterpreter”,在图中按“+”。第2章PyTorch框架安装2.2.6安装、设置PyCharm3.PyCharm和虚拟环境连接109增加操作包截面图第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.1安装VMwareWorkstationPro虚拟机下载地址:虚拟机Vmwareworkstation15.5百度网盘地址;https:///s/1cSzZpvkbrEL6wwy6MYjP4g

密码:pcww安装视频110第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.1安装VMwareWorkstationPro111第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.1安装VMwareWorkstationPro112第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.1安装VMwareWorkstationPro113第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.2配置Python3.5环境指定默认打开Python3.5,操作如下。1.进入Ubuntu16.04系统,打开终端(Terminal)。2.依次输入以下三条命令:sudocp/usr/bin/python/usr/bin/python_baksudorm/usr/bin/pythonsudoln-s/usr/bin/python3.5/usr/bin/python上述命令成功后,在终端输入Python,再打开的就默认是Python3.5环境了。114第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.3Linux上安装PyTorch1.进入PyTorch官网:/115第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.3Linux上安装PyTorch2.在终端执行该命令。pip3installtorch==1.3.1+cputorchvision==0.4.2+cpu-f/whl/torch_stable.html116第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.3Linux上安装PyTorch2.在终端执行该命令。pip3installtorch==1.3.1+cputorchvision==0.4.2+cpu-f/whl/torch_stable.html117第2章PyTorch框架安装2.3Linux下PyTorch深度学习环境的配置2.3.3Linux上安装PyTorch3.测试。>>>Importtorch>>>a=torch.FloatTensor(2,3)>>>print(a)118第2章PyTorch框架安装2.4PyTorch开发工具2.4.1IDLE119第2章PyTorch框架安装2.4PyTorch开发工具2.4.1IDLE点击IDLE菜单栏上的“File”选择“NewFile”就可以打开一个新文件,如图所示。120第2章PyTorch框架安装2.4PyTorch开发工具2.4.1IDLE121第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm/help/pycharm/installation-guide.html#snap122第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm123第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm124第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm125第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm126第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm127第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm128第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm点击CreateNewProject129第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm130第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm131第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm132第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm133第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm134第2章PyTorch框架安装2.4PyTorch开发工具2.4.2PyCharm135/whl/torch_stable.html课堂练习(1)torchvision包由流行的

、模型架构(torchvision.models)和用于计算机视觉的常见图像转换(torchvision.transforms)组成。答案:数据集(torchvision.datasets)课堂练习(2)安装Python后,从控制台进入Python环境的命令是:

。答案:python课堂练习(3)在Python环境下,要想使用PyTorch必须输入的命令是:

。答案:importtorch课堂练习(4)Ubuntu16.04自带Python2.7和Python3.5两个版本的Python,一般情况下在终端输入Python,默认打开的是

。答案:Python2.7课堂练习(5)PyCharm有professional版和community版。professional表示专业版,community是社区版,

是免费的。答案:community/社区版课堂练习(1)安装PyTorch之前必须安装()。A.JavaB.NetC.VC++D.Python答案:D课堂练习(2)PyTorch的前身是()。A.JavaB.LuaC.TorchD.Python答案:C课堂练习(3)PyTorch是()发布的。A.Facebook人工智能研究院

B.百度人工智能研究院C.微软人工智能研究院

D.华为人工智能研究院答案:A课堂练习(4)PyTorch不可以安装在()。A.Windows系统B.Mac系统C.Linux系统D.Vxworks系统答案:D课堂练习(5)安装torchvision的命令是()。A.pythontorchvisionB.installtorchvisionC.pip3installtorchvisionD.pythoninstalltorchvision答案:CThankYou!深度学习第3章PyTorch基础Pytorch怎么操作这些图像?怎么操作这些海量数据?148第3章PyTorch基础3.1张量是什么3.2Tensor的创建3.3Tensor的调整形状操作3.4Tensor的加、减、乘、除、取绝对值操作3.5Tensor的比较操作1493.6Tensor的数理统计操作3.7Tensor与Numpy的互相转换操作第3章PyTorch基础3.8Tensor的降维和增维操作3.9Tensor的裁剪操作3.10Tensor的索引操作3.11把Tensor移到GPU上去150课上练习第3章PyTorch基础3.1张量是什么

PyTorch处理的最基本操作对象就是张量,张量的英文是Tensor,表示的是一个多维的矩阵。151第3章PyTorch基础3.1张量是什么

152第3章PyTorch基础3.1张量是什么

153图3.3四阶张量、五阶张量第3章PyTorch基础3.1张量是什么

PyTorch处理的最基本操作对象就是张量,张量的英文是Tensor,表示的是一个多维的矩阵。零阶张量就是一个

,一阶张量就是

,二阶张量就是一般的

,多阶张量就相当于一个

。154矩阵多维的矩阵数组矢量数第3章PyTorch基础3.1张量是什么

张量的3个属性:1.阶(rank):维数。2.形状(shape):行和列的数目。3.类型(type):元素的数据类型。155第3章PyTorch基础3.1张量是什么

156数据类型含义torch.FloatTensor32位浮点型(默认类型)torch.DoubleTensor64位浮点型torch.ShortTensor16位整型torch.IntTensor32位整型torch.LongTensor64位整型表3.1常用的张量数据类型第3章PyTorch基础3.2Tensor的创建1.创建给定元素值的Tensor【例3-1】比如要定义一个32位浮点型Tensor,其值是矩阵:[[1,2],[3,4],[5,6]]。输入:importtorcha=torch.FloatTensor([[1,2],[3,4],[5,6]])print(a)输出:tensor([[1.,2.],[3.,4.],[5.,6.]])157第3章PyTorch基础3.2Tensor的创建2.创建一个指定形状的Tensor对于张量,可以在定义时直接赋值,也可以先定义一个未赋值的空矩阵。比如:【例3-3】输入:importtorchastc=t.Tensor(3,2)print(c)输出:tensor([[7.5338e+28,6.1687e+16],[6.3369e-10,2.5038e-12],[4.0058e-11,4.1729e-08]])158第3章PyTorch基础3.2Tensor的创建3.创建一个和给定的Tensor形状一样的新Tensor【例3-4】输入:importtorchastd=t.Tensor(3,2)e=t.Tensor(d.size())print(e)输出:tensor([[0.0000e+00,0.0000e+00],[2.1019e-44,0.0000e+00],[7.3908e+22,1.4764e-41]])159第3章PyTorch基础3.3Tensor的调整形状操作创建一个二阶张量,长度为6,元素为[0,1,2,3,4,5],将其改编成形状为2*3的张量。【例3-5】输入:importtorchasta=t.arange(0,6)print(a)b=a.view(2,3)print(b)输出:tensor([0,1,2,3,4,5])tensor([[0,1,2],[3,4,5]])160第3章PyTorch基础3.4Tensor的加、减、乘、除、取绝对值操作【例3-7】输入:importtorchasta=t.Tensor([[1,2],[3,4]])b=t.Tensor([[10,20],[30,40]])c=t.add(a,b)#加法d=t.sub(a,b)#减法e=t.mul(a,b)#乘法f=t.div(a,b)#除法g=t.pow(b,2)#幂操作h=t.abs(d)#求绝对值print("a=",a)print("b=",b)print("c=",c)print("d=",d)print("e=",e)print("f=",f)print("g=",g)print("h=",h)161第3章PyTorch基础3.4Tensor的加、减、乘、除、取绝对值操作【例3-7】输出:a=tensor([[1.,2.],[3.,4.]])b=tensor([[10.,20.],[30.,40.]])c=tensor([[11.,22.],[33.,44.]])d=tensor([[-9.,-18.],[-27.,-36.]])e=tensor([[10.,40.],[90.,160.]])f=tensor([[0.1000,0.1000],[0.1000,0.1000]])g=tensor([[100.,400.],[900.,1600.]])h=tensor([[9.,18.],[27.,36.]])162第3章PyTorch基础3.5Tensor的比较操作Tensor常用的比较函数有很多,比如torch.equal()、torch.eq()、torch.gt()、torch.lt()、torch.ge()、torch.le()、torch.ne()、torch.topk()、torch.sort()等等。1.torch.equal(tensor1,tensor2,out=None)说明:如果两个张量有相同的形状和元素值,则返回true,否则返回False。参数:tensor1(Tenosr):用于比较的张量1tensor2(Tensor):用于比较的张量2out(Tensor,可选的):输出张量163第3章PyTorch基础3.5Tensor的比较操作Tensor常用的比较函数有很多,比如torch.equal()、torch.eq()、torch.gt()、torch.lt()、torch.ge()、torch.le()、torch.ne()、torch.topk()、torch.sort()等等【例3-8】输入:importtorchasta=t.Tensor([[1,2],[3,4]])b=t.Tensor([[1,2],[2,3]])result=t.equal(a,b)print(result)输出:False164第3章PyTorch基础3.6Tensor的数理统计操作Tensor中的求最小值、最大值、均值、累加、累积等的操作也很多,比如:torch.min()、torch.max()、torch.mean()等等。1.torch.max(input)说明:返回输入张量所有元素的最大值参数:input(Tensor):输入张量165第3章PyTorch基础3.6Tensor的数理统计操作Tensor中的求最小值、最大值、均值、累加、累积等的操作也很多,比如:torch.min()、torch.max()、torch.mean()等等。【例3-10】输入:importtorchasta=t.Tensor([1,2,3])max=t.max(a)print("max=",max)输出:max=tensor(3.)166第3章PyTorch基础3.7Tensor与Numpy的互相转换操作NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它提供了一个多维数组(ndarray)数据类型,以及关于多维数组的操作,NumPy已经成为其他大数据和机器学习模块的基础。Tensor类似于Numpy的ndarray,但ndarray不支持GPU运算,而Tensor支持。Tensor与Numpy可以方便的互相转换。167第3章PyTorch基础3.7Tensor与Numpy的互相转换操作1.Tensor-->Numpy直接用.numpy()即可。要注意,转换后,numpy的变量和原来的Tensor会共用底层内存地址,所以如果原来的Tensor改变了,numpy变量也会随之改变。168第3章PyTorch基础3.7Tensor与Numpy的互相转换操作【例3-12】输入:importtorchasta=t.ones(3)b=a.numpy()print("a=",a)print("b=",b)输出:a=tensor([1.,1.,1.])b=[1.1.1.]169第3章PyTorch基础3.8Tensor的降维和增维操作Tensor关于维度的操作有很多,比如降维(torch.squeeze())和增维(torch.unsqueeze()),张量拼接(torch.cat())、张量扩大(torch.Tensor.expand())、张量缩小(torch.Tensor.narrow())等等。170第3章PyTorch基础3.9Tensor的裁剪操作clamp(x,min,max)对Tensor中的元素进行范围过滤,不符合条件的可以把它变换到范围内部(边界)上,常用于梯度裁剪(gradientclipping),即在发生梯度离散或者梯度爆炸时对梯度的处理。x是一个Tensor,min、max是两个标量,如果x<min,返回min;如果min<x<max,返回x;如果x>max,返回max。171第3章PyTorch基础3.10Tensor的索引操作Tensor支持与numpy.ndarray类似的索引操作,下面通过一些例子讲解常用的索引操作。如无特殊说明,索引出来的结果与原Tensor共享内存,即修改一个,另一个也会跟着改。172第3章PyTorch基础3.11把Tensor移到GPU上去PyTorch提供了一个名为cuda()的简单函数,将张量从CPU复制到GPU上。173课程为什么可以不受限于GPU174GPU是什么GPU和CPU的区别课程不受限于GPU175GPU是什么GPU和CPU的区别课程不受限于GPU课程为什么可以不受限于GPU176GPU是什么GPU和CPU的区别课程不受限于GPU程序在GPU和CPU下运行的比较1.课程为什么可以不受限于GPU178GPU是什么GPU和CPU的区别课程不受限于GPU本书部分程序在CPU下运行的时间.课程为什么可以不受限于GPU程序运行视频:179GPU是什么GPU和CPU的区别课程不受限于GPU本书部分程序在CPU下运行的时间.(下一页)课程为什么可以不受限于GPU180本书部分程序在CPU下运行的时间.课程为什么可以不受限于GPU课堂练习(1)PyTorch的默认数据类型是:

。答案:torch.FloatTensor课堂练习(2)张量的阶就是张量的

、张量的形状就是张量的

、张量的类型是

。答案:维数、行和列的数目、元素的数据类型课堂练习(3)用

查看Tensor的数据类型,用

查看元素个数

。答案:dtypenumel()课堂练习(4)用

函数或

可以查看Tensor的尺寸。答案:size()shape课堂练习(5)NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Tensor类似于Numpy的

答案:ndarray课堂练习(1)clamp(x,min,max)对Tensor中的元素进行范围过滤,不符合条件的可以把它变换到范围内部(边界)上,常用于()。A.梯度消失B.梯度裁剪

C.梯度爆炸D.梯度退化答案:B课堂练习(2)二阶张量就相当于一个()。A.矩阵 B.多维矩阵

C.一个点 D.一条线答案:A课堂练习(3)以下是64位浮点型的数据类型是()。A.torch.LongTensor B.torch.IntTensor C.torch.ShortTensor D.torch.FloatTensor答案:A课堂练习(4)能够调整张量形状的函数是()。A.arange()B.view()C.ge()D.shape()答案:B课堂练习(5)函数torch.cat()的作用是()。A.张量拼接B.张量扩大

C.增维D.张量缩小答案:AThankYou!深度学习第4章线性回归和逻辑回归4.1回归4.2线性回归模型4.3一元线性回归的实现4.4梯度及梯度下降4.5多元线性回归实现1934.6逻辑回归课上练习第4章线性回归和逻辑回归4.1回归194图4.1回归示例第4章线性回归和逻辑回归4.1回归195图4.2回归分类第4章线性回归和逻辑回归4.2线性回归模型线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,可以解决如预测等问题。

196图4.3一元线性回归图4.4多元线性回归第4章线性回归和逻辑回归4.2线性回归模型

197线性模型的基本形式是:一般向量形式是:是一组独立的预测变量。为模型从训练数据中学习到的参数,或赋予每个变量的权值。其中的b也是一个学习到的参数,这个线性函数的常量也成为模型的偏置。4.2线性回归模型

198图1.9人体神经元细胞输入(树突)-计算(细胞核)-输出(轴突)第4章线性回归和逻辑回归怎么把回归模型和人工神经网络联系在一起?4.2线性回归模型

199

画出一个神经元模型:包含有2个输入,2个计算功能(求和与非线性函数)以及1个输出。图1.13人工神经元模型第4章线性回归和逻辑回归连接:连接神经元4.2线性回归模型

200

画出一个神经元模型:包含有2个输入,2个计算功能(求和与非线性函数)以及1个输出。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。第4章线性回归和逻辑回归4.2线性回归模型

201神经元模型用变量符号表示输出的计算公式为Z=sign(a1*w1+a2*w2)神经元网络扩展节点下一页第4章线性回归和逻辑回归

画出一个神经元模型:包含有2个输入,2个计算功能(求和与非线性函数)以及1个输出。4.2线性回归模型

202画出表达式对应的单层神经网络(感知机)模型。第4章线性回归和逻辑回归4.2线性回归模型

203画出表达式对应的单层神经网络(感知机)模型。线性模型都可以表达。下一页第4章线性回归和逻辑回归第4章线性回归和逻辑回归4.3一元线性回归的实现

204图4.5寻找拟合直线最小二乘法形式如下:如何在PyTorch中表示呢?下一页第4章线性回归和逻辑回归4.3一元线性回归的实现

这里又要引入一个新的概念,叫做损失函数。205

损失函数或代价函数是用来拟合的直线和真实值之间的距离。损失函数越小说明对训练数据拟合的越好。所有样本点与拟合直线的距离:该值既是损失函数的值。第4章线性回归和逻辑回归4.3一元线性回归的实现

206第4章线性回归和逻辑回归4.3一元线性回归的实现

207红色点集成算法中的每个评估器产生的预测值;红色虚线代表这些预测值的平均值;蓝色实线代表数据的真实值。偏差:模型预测值与真实值之间的差异,即:红色点到蓝色实线的距离。在集成算法中,每个基评估器都会产生自己的偏差,集成评估器的偏差是基评估器偏差的均值。模型越精准,偏差越低。方差:模型预测值与预测值的平均值之间的差异。即:红色点到红色虚线之间的距离,以此衡量模型的稳定性。模型越稳定,方差越低。通常来讲,偏差和方差是一个“此消彼长”的关系。

第4章线性回归和逻辑回归4.3一元线性回归的实现

208PyTorch中常用的损失函数很多,比如均方误差损失、交叉熵损失、L1范数损失、KL散度损失、二进制交叉熵损失等等。第4章线性回归和逻辑回归4.3一元线性回归的实现

其思路是先给定一个训练集,根据这个训练集学习出一个线性函数,然后预测这个函数训练的好与不好,挑出最好的函数。再用这个最好的函数完成预测。209第4章线性回归和逻辑回归4.3一元线性回归的实现

【例4.1】一元线性回归的代码实现(七个步骤)。第一步:导入包、定义超参数。导入Torch模块库和Matplotlib画图模块库。importtorchimporttorch.nnasnnimportnumpyasnpimportmatplotlib.pyplotaspltfromtorch.autogradimportVariable如何在pytorch中导入库(包)?210第4章线性回归和逻辑回归4.3一元线性回归的实现

如何在pytorch中导入库(包)?1.联网直接安装211第4章线性回归和逻辑回归4.3一元线性回归的实现

如何在pytorch中导入库(包)?1.联网直接安装212python各种镜像安装包下载链接阿里云/pypi/simple/中国科技大学/simple/豆瓣(douban)/simple/清华大学/simple/中国科学技术大学/simple/torch对应版本下载专用:/whl/torch_stable.html深度学习实践教程第4章线性回归和逻辑回归4.3一元线性回归的实现

如何在pytorch中导入库(包)?2.pip安装PyTorch依赖于一些其他的库和工具,例如NumPy、scipy、matplotlib等。可以使用pip命令安装这些库,例如:在cmd输入:pip3installnumpyscipymatplotlib解决下载慢的问题:pipinstallmatplotlib-i/simple--trusted-host214第4章线性回归和逻辑回归4.3一元线性回归的实现

如何在pytorch中导入库(包)?3.安装Anaconda215第4章线性回归和逻辑回归4.3一元线性回归的实现

如何在pytorch中导入库(包)?4.离线安装:

先用迅雷下载,然后在pycharmterminal安装

216第4章线性回归和逻辑回归4.3一元线性回归的实现

第一步:导入包、定义超参数。#定义超参数input_size=1output_size=1num_epochs=1000learning_rate=0.001217第4章线性回归和逻辑回归4.3一元线性回归的实现

第二步:“制造”出一些数据,即生成矩阵数据。x_train=np.array([[2.3],[4.4],[3.7],[6.1],[7.3],[2.1],[5.6],[7.7],[7.7],[4.1],[6.7],[6.1],[7.5],[2.1],[7.2],[5.6],[5.7],[7.7],[3.1]],dtype=np.float32)#xtrain生成矩阵数据y_train=np.array([[2.7],[4.76],[4.1],[7.1],[7.6],[3.5],[5.4],[7.6],[7.9],[5.3],[7.3],[7.5],[7.5],[3.2],[7.7],[6.4],[6.6],[7.9],[4.9]],dtype=np.float32)plt.figure()#画散点图218第4章线性回归和逻辑回归4.3一元线性回归的实现

plt.scatter(x_axis,y_axis)plt.xlabel('x_axis')#x轴名称plt.ylabel('y_axis')#y轴名称plt.show()#显示图片219第4章线性回归和逻辑回归4.3一元线性回归的实现

第三步:建立线性回归模型。这里nn.Linear表示的是y=+wxb,input_size表示的是自变量x的尺寸,是一维;output_size表示的是因变量y的尺寸,也是一维。classLinearRegression(nn.Module):def__init__(self,input_size,output_size):#调用父类的构造函数super(LinearRegression,self).__init__()#定义线性层,input_size为输入特征的维度,output_size为输出特征的维度self.linear=nn.Linear(input_size,output_size)defforward(self,x):#前向传播函数,接受输入x,通过线性层计算输出out=self.linear(x)returnout220第4章线性回归和逻辑回归4.3一元线性回归的实现

第四步:定义损失函数。这里使用均方误差函数MSELoss()定义损失函数criterion,即对每个训练样本的预测值与真实值之差的平方求和。需要将model的参数model.parameters()传进去。#创建线性回归模型的实例model=LinearRegression(input_size,output_size)#定义损失函数criterion=nn.MSELoss()221第4章线性回归和逻辑回归4.3一元线性回归的实现

第五步:定义优化函数。优化函数代表通过什么方式去优化需要学习的值,即本例中的w和b。优化的方法有很多,常用的有随机梯度下降法(SGD算法)、标准动量优化算法(Momentum)、RMSProp算法、Adam算法。这里选择SGD算法。#定义优化器optimizer=torch.optim.SGD(model.parameters(),lr=learning_rate)222第4章线性回归和逻辑回归4.3一元线性回归的实现

第六步:训练模型。首先定义迭代的次数,这里为1000次,先进行前向传播计算损失函数,然后进行反向传播计算梯度。需要注意的是,每次计算梯度前都要将梯度归零,不然梯度会累加到一起造成结果不收敛。为了便于查看结果,每隔一段时间输出一次当前的迭代次数和损失函数。#训练模型forepochinrange(num_epochs):#将numpy数组转换为torchVariableinputs=Variable(torch.from_numpy(x_train))targets=Variable(torch.from_numpy(y_train))223第4章线性回归和逻辑回归4.3一元线性回归的实现

#清零梯度,防止梯度累积optimizer.zero_grad()#前向传播,得到模型的预测输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论