深度学习应用开发 课件 第2章 TensorFlow2.0介绍_第1页
深度学习应用开发 课件 第2章 TensorFlow2.0介绍_第2页
深度学习应用开发 课件 第2章 TensorFlow2.0介绍_第3页
深度学习应用开发 课件 第2章 TensorFlow2.0介绍_第4页
深度学习应用开发 课件 第2章 TensorFlow2.0介绍_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

目录1TensorFlow概述01任务TensorFlow的优点02任务TensorFlow的几个基本概念03任务1初识TensorFlow1TensorFlow概述TensorFlow是Google开源的基于数据流图的、面向于深度学习算法的科学计算库,命名来源于本身的运行原理,Tensor(张量)表示N维数组,Flow(流)表示基于数据流图的计算。内部数据保存在张量(Tensor)对象上,所有的运算操作(Operation,OP)基于张量对象进行。在深度学习领域应用广泛,如深度神经网络、卷积神经网络和递归神经网络已被应用计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。2TensorFlow的优点2TensorFlow的优点真正的可移植性

引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端,如安卓设备、ios、树莓派等等多语言支持

Tensorflow有一个合理的c++使用界面,也有一个易用的python使用界面来构建和执行你的graphs,你可以直接写python/c++程序高度的灵活性与效率

TensorFlow是一个采用数据流图(dataflowgraphs),用于数值计算的开源软件库能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不断在提高TensorFlow由谷歌提供支持,谷歌投入了大量精力开发TensorFlow,它希望TensorFlow成为机器学习研究人员和开发人员的通用语言3TensorFlow的几个基本概念3TensorFlow的几个基本概念计算图(graphs):描述了计算过程,Tensorflow用图来表示计算过程。张量(tensor):Tensorflow使用tensor表示数据,每一个tensor是一个多维的数组。变量(variable):变量(Variable)是特殊的张量(Tensor),它的值可以是一个任何类型和形状的张量,变量存储的是持久张量,当训练模型时,用变量来存储和更新参数。占位符:输入变量的载体。可以理解为定义函数时的参数。操作:图中的节点为op,一个op获得/输入0个或者多个Tensor,执行并计算,产生0个或多个Tensor。会话(session):

tensorflow的运行需要在会话里面运行。3TensorFlow的几个基本概念(1)计算图(graphs):图是TensorFlow用于表达计算任务的一个核心概念,Tensorflow用图来表示计算过程,graph被定义一些操作和张量的集合3TensorFlow的几个基本概念(2)张量(tensor)TensorFlow中,张量是计算图上的数据载体,用张量统一表示所有的数据,张量在计算图的节点之间传递;张量主要有三种类型:常量tf.constant()、变量tf.Variable()、占位符tf.palceholder()张量可以看做是n维的数组,数组的维数即为张量的阶数:阶数学实例Python例子0纯量(只有大小)s=4831向量(大小和方向)v=[1.1,2.2,3.3]2矩阵(数据表)m=[[1,2,3],[4,5,6],[7,8,9]]33阶张量(数据立体)t=[[[2],[4],[6]],[[8],[10],[12]],[[14],[16],[18]]]nn阶(多维数组)....

3TensorFlow的几个基本概念(3)变量(variable)1、变量是计算图中的一种有状态节点,用于在多次执行同一计算图时存储并更新指定参数,对应了机器学习或深度学习算法中的模型参数;作为有状态节点,其输出由输入、节点操作、节点内部已保存的状态值共同作用;2、创建变量的方法有三种:使用tf.Variable()函数直接定义使用TensorFlow内置函数创建使用其他变量初始值来定义新变量3、调用语法:tf.Variable(dtype,shape=None,name=None)dtype:数据类型shape:数据维度name:张量名称

3TensorFlow的几个基本概念(4)占位符(placeholder)用于声明一个张量的数据格式,告诉系统这里会有一个这种格式的张量,但是还没有给定具体数值,具体的数值要在正式运行的时候填充。占位变量是一种TensorFlow用来解决读取大量训练数据问题的机制,它允许你现在不用给它赋值,随着训练的开始,再把训练数据传送给训练网络学习。调用语法:tf.placeholder(dtype,shape=None,name=None)dtype:数据类型shape:数据维度name:张量名称

3TensorFlow的几个基本概念(5)操作(operation):简称op,是TensorFlow图中的节点,它的输入和输出都是Tensor。作用都是完成各种操作,包括算数操作、矩阵操作、神经网络构建操作等。(6)会话(session):Tensorflow会话,在Tensorflow中是计算图的具体执行者,与图进行实际的交互。ThankYOU!目录1TensorFlow数学概念01任务矩阵的数学运算02任务TensorFlow数学运算03任务1TensorFlow数学概念1TensorFlow数学概念数学是任何机器学习算法的核心,使用TensorFlow创建应用程序之前,了解一些TensorFlow中基本的数学概念是很必要的,理解数学核心概念,有助于定义机器学习算法的解决方案。TensorFlow中经常出现的数学概念有:标量(scalar)

一个单独的数向量(vector)

一列数,即一维数组矩阵(matrix)

二维数组张量(tensor)

多维数组1TensorFlow数学概念(1)标量标量(scalar)

,也称纯量,是只有大小,没有方向的量,标量也称为0维张量。比如:一个常数,只有数值大小,没有方向。在物理学中,标量是在坐标变换的情况下,保持不变的物理量。1TensorFlow数学概念(2)向量向量(vector),也称矢量,是既有大小,又有方向的量。向量是一列数,即一维数组,向量也称为一维张量。例如,在物理学中,速度就是一个向量,1TensorFlow数学概念(3)矩阵矩阵(matrix)是一个二维数组,数组元素以行和列的格式排列。矩阵的大小由行长度和列长度定义。矩阵也称为二维张量。由m×n个数aij排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵。记作:1TensorFlow数学概念(4)张量张量(tensor)

是多维数组,标量、矢量、矩阵都可以用张量表示,只是维度不同。2矩阵的数学运算2矩阵的数学运算矩阵的数学运算包括:矩阵加法、矩阵减法、矩阵乘法、矩阵转置等运算。(1)矩阵加法两个矩阵具有相同形状的矩阵可以相加,相加表示将对应位置的元素相加,生成的矩阵与原矩阵形状相同。例如:2矩阵的数学运算(2)矩阵减法矩阵减法与矩阵加法操作类似例如:2矩阵的数学运算(3)矩阵乘法假设矩阵A(形状mxn)与B(形状pxq)相乘,必须n=q,即A的列数必须与B的行数相同,得到的结果是C(形状mxq),其中元素的算法如下:2矩阵的数学运算(4)矩阵转置矩阵转置是指把一个矩阵的列转置为行得到一个新矩阵,矩阵A的转置可以表示为:3TensorFlow实现数学运算3TensorFlow实现数学运算TensorFlow中的数学运算包括加、减、乘、除、幂次方、对数、矩阵相乘等运算。(1)加减乘除法加、减、乘、除是最基本的数学运算,分别通过tf.add()、tf.subtract()、tf.multiply()、tf.divide()函数实现,TensorFlow支持+、-、*、/运算符,一般推荐直接使用运算符来完成加、减、乘、除运算。整除、除法取余也是常见的运算之一,分别通过//和%运算符实现。示例:3TensorFlow实现数学运算(2)幂次方函数tf.pow(x,a)可以完成x的a次方运算,也可以使用x**a完成,示例:3TensorFlow实现数学运算(2)幂次方设置指数为1/a的形式,既可以实现x开a次方根的运算示例:3TensorFlow实现数学运算(2)幂次方对于一些常见的平方和平方根运算,可以使用tf.square()和tf.sqrt()实现示例:3TensorFlow实现数学运算(2)幂次方对于tf.sqrt(),为实现开二次根运算。这里开二次根的运算,相当于指数为0.5,是一个小数,所以底数也应该转换为小数。示例:3TensorFlow实现数学运算(3)矩阵乘法运算通过tf.matmul(a,b)函数实现矩阵相乘。矩阵A和B能够矩阵相乘的条件是,A的倒数第一个维度长度和B的倒数第二个维度长度必须相等。示例:ThankYOU!目录1数值型01任务字符串型02任务布尔型03任务1数值型1数值型数值型数据是TensorFlow中最常见的数据类型,标量、向量、矩阵、张量等都属于数值型。(1)标量标量的创建可以使用python语言创建,也可以使用TensorFlow框架创建,TensorFlow使用tf.constant()函数创建标量。示例:1数值型(2)向量向量是n个实数的有序集合,如[1,2.,3.3]是维度数为1,shape

=(3,)的向量,TensorFlow使用tf.constant()函数创建向量,示例:1数值型(3)矩阵矩阵是n行m列实数的有序集合。维度为2,shape为(n,m),TensorFlow使用tf.constant()函数创建矩阵,示例:1数值型(4)张量所有维度大于2的数组统称为张量。张量的每个维度也做轴(Axis),一般维度代表了具体的含义,例如shape为(2,32,32,3)的张量一共有4维,如果表示图片的数据,2代表2张图片,32代表了高、宽都是32,3代表了RGB共3个通道。TensorFlow使用tf.constant()函数创建张量,示例:2字符串型2字符串型除了丰富的数值类型外,TensorFlow还支持字符串(String)类型的数据,TensorFlow通过tf.constant()函数传入字符串对象即可创建字符串类型的张量,在tf.string模块中,提供了许多处理字符串数据的函数,如:大写化upper(),小写化lower(),拼接join(),长度length(),切分split():3布尔型2布尔型为了方便表达比较运算操作的结果,TensorFlow还支持布尔类型(bool)的张量。布尔类型的张量只需要传入Python语言的布尔类型数据,转换成TensorFlow内部布尔型即可:

ThankYOU!目录1标量的应用01任务向量的应用02任务矩阵的应用03任务多维张量的应用04任务1标量的应用1标量的应用在TensorFlow中,每种维度下的张量都有典型的应用,不同维度的张量都具有不同的物理意义和用途。标量最容易理解,它就是一个简单的数字,维度数为0,shape

=()。标量的典型用途之一是误差值的表示、各种测量指标的表示,比如准确度(Accuracy)、精度(Precision)和召回率(Recall)等。2向量的应用2向量的应用向量是一种常见的数据载体,如在全连接层和卷积神经网络层中,偏置张量𝒃就使用向量来表示。如图所示,每个全连接层的输出节点都添加了一个偏置值,把所有输出节点的偏置表示成向量形式:𝒃=[𝑏1,𝑏2]𝑇。3矩阵的应用3矩阵的应用矩阵也是非常常见的张量类型,比如全连接层的批量输入𝑋=[𝑏,𝑑𝑖𝑛],其中𝑏表示输入样本的个数,即batchsize,𝑑𝑖𝑛表示输入特征的长度。比如特征长度为4,一共包含2个样本的输入可以表示为矩阵:x=tf.random.normal([2,4])4多维张量的应用4多维张量的应用多维张量应用最多的是四维张量,对于含有RGB3个通道的彩色图片,每张图片包含了h行w列像素点,每个点需要3个数值表示RGB通道的颜色强度,因此一张图片的张量的shape可以表示为(h,w,3),故b张图片的张量的shape可表示为[b,h,w,3]。ThankYOU!目录1案例目标01任务环境配置02任务案例实施04任务案例分析02任务03任务1案例目标案例目标掌握tensorflow包的调用方法;掌握使用定义占位符和变量的方法;掌握计算图的定义方法;掌握会话的创建方法;了解损失函数和优化过程。12案例分析2案例分析案例分析:x、y是二维矩阵,x=[[1.0,3.0],[3.2,4]],y=[[6.0,3.0],[5.2,43.]],运算公式x*W+b=y,求W和b的最优值。3环境配置3环境配置Windows10jupyternotebooktensorflow2.04案例实施4案例实施1、导入库开发环境安装的是TensorFlow2.0版本,为了与TensorFlow1.0兼容,需要输入如下代码导入tensorflow包:4案例实施2、定义占位符和变量先给输入数据定义占位符,在训练优化函数的过程中输入数据4案例实施3、定义计算图和损失函数,使用梯度下降法优化4案例实施4、启动会话,并初始化全局变量,并为x,y设置固定的值4案例实施5、通过while循环进行迭代训练,并输出最终求出的W和b的值ThankYOU!目录1案例目标01任务环境配置02任务案例实施04任务案例分析02任务03任

温馨提示

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

评论

0/150

提交评论