《《深度学习基础及应用》教案第2课夯实深度学习开发基础.docx》由会员分享,可在线阅读,更多相关《《深度学习基础及应用》教案第2课夯实深度学习开发基础.docx(14页珍藏版)》请在优知文库上搜索。
1、课题夯实深度学习开发基础课时2课时(90min)教学目标知识技能目标:(1)了解SCikit-Ieam库的基本数据集和主要功能(2)掌握TenSOrFIOW中张量的定义、创建、运算和操作方法(3)能够使用NumPy库的函数查看导入雌集的健属性和元素的值(4)能够根据数据集中特征值和标签值的特点,选择合适的可视化图形对数据进行展示素质目标:(1)锻炼具体问题具体分析的思维方式,培养一丝不苟的工作态度,增强积极主动寻求解决方法的意识(2)了解科技前沿新应用,开阔视野,抓住机遇,展现新作为教学重难点教学重点:了解SCikit-Iearn库的基本数据第口主要功能教学难点:根据数据集中特征值和标签值的特
2、点,选择合适的可视化图形对数据进行展示教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,请大家提前预习本节课要讲的知识【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】组织学生扫码观看Sdkit-Iearn库与TenSorF1。W的比较和Keras库自带的数据集“视频,讨论并回答下列问题:(1)简述Scikit-Iearn库与TensorFIow的区别。(2)写出Keras库自带的数据集(不
3、少于3个【学生】思考、讨论、举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍Python深度学习常用库、TensorFIow深度学习基础等内容2.1 PythOn深度学习常用库2.1.1 NumPy库NUmPy是高性能科学计算和数据分析的基础库,它极大地简化了多维数组的操作和处理过程。在实际应用中,大部分数据处理常用库都依赖于NUmPy.1.数据类型NUmPy提供了比PythOn更丰富的数据类型。NUmPy娄幅类型由类型名(如int、float)和位长组成,常用的数据类型如表21所示。【教师】通过多媒体展示“NumPy中常用的数据类型”表格,介绍相关知识表2-1NUmPy中常用的数据
4、类型类型说明类型说明bl布尔类型,值为Tme或Falsefloat16半精度浮点数(16位)str字符型float32单精度浮点数(32位)int8、uint8有符号和无符号的8位整数float64float双精度浮点数(64位)inti6、uintl6有符号和无符号的16位整数complex64复数,用两个32位浮点数表示实部和虚部int32int、uint32有符号和无符号的32位整数complex128复数,用两个64位浮点数表示实部和虚部int64、UinI64有符号和无符号的64位整数2.创建数组NumPy定义了一个n维数组对象,简称ndarray对象,它是一个由一系列相同数据类型元
5、素组成的数据集合。NUmPy提供的创建数组的函数如表2-2所示。【教师】通过多媒体展示“NumPy中创建数组的函数”表格,介绍相关知识表22NUmPy中创建数组的函数函数说明numpy.array(object,dtype=None)用列表、元组等创建数组.其中,ObjeCl表示序列,如列表、元组等;dtype表示数组元素的数据类型,默认为传入序列的数据类型numpy.zeros(shape,dtype=float,)根据shape创建元素值都为()的数组。其中,shape表示数组形状;dtype表示数组元素的数据类型,默认为oatnumpy.ones(shape.dtype=float,)根
6、据shape创建元素值都为1的数组。其中,shape表示数组形状;dtype表示数组元素的数据类型,默认为floatnumpy.arange(start.stop,step,dtype=None)在指定数值区间创建数组.其中,start表示起始值,默认为0;stop表示终止值(不含);step表示步长,默认为1numpy.full(shape,val)根据shape创建元素值都为val的数组。其中,shape表示数组形状;val表示元素的值numpy.linspace(start.stop,num=50,endpoinl=True,retstep=False(Itype=None)在指定数值区
7、间创建一个等差数组。其中,num表示数值区间内等差的元素个数,默认为50;endpoint表示数组是否包含stop的值,如果为True则包含,否则不包含,默认为True;retstep表示数组中是否显示公差,如果为True则显示,否则不显示,默认为Falsenumpy.logspace(start.stop.num=50,endpoint=True,base=10.0,dtype=None)在指定数值区间创建一个等比数组。其中,start表示起始值的指数;stop表示终止值的指数;base表示对数函数的底数,默认为1()3.查看数组属性NumPy数组的基本属性如表2-3所示。【教师】通过多媒体
8、展示“数组的基本属性”表格,介绍相关知识表2-3数组的基本属性属性说明ndim数组的维度shape数组的形状,返回一个元组(m,n),表示m行n列size数组中元素的总个数,等于ShaPe属性中元组元素值的乘积,即mndtype数组中元素的数据类型【例2-1】查看数组的基本属性。【参考代码】importnumpyasnp#导入NumPy库#创建4x3的整数数组arr=np.array(1,2,3,4,5,6,7,8,9,IOJ1,12)printf43的整数数组:n,arr)#输出数组PrintC数组的ndim属性:,arr.ndim)#输出ndim属性PrinK,数组的shape属性:,ar
9、r.shape)#输出shape属性Prin1(数组的size属性:arr.size)#输出size属性PrinlC数组的dtype属性:,arr.dtype)#输出dtype属性【运行结果】程序运行结果如图所示。4X3的整数数组:123456789101112数组的ndi遍性:2数组的ShaPe属性:(4,3)数组的SiZe属性:12数组的dtype雇性:int324 .数组的索引与切片在NumPy中,如果想要访问或修改数组中的元素,可以采用索引或切片的方式。索引与切片的区别是索引只能获取单个元素,而切片可以获取一定范围的元素.(1)一维数组的索引与切片。一维数组的索引与切片和列表类1以,其
10、一般格式如下。arrayindex#维数组的索引arraystart:stop:step#维数组的切片其中,index表示索引,从0开始;start表示起始索引,默认为0;stop表示终止索引(不含);step表示索引步长,默认为1,不能为Oe例如,创建一维数组arr=np.array(1,2,3,4,5,6,7,8,9),使用索引和切片获取数组中元素的几种情况如下.arr2#获取索引为2的元素,结果为3arrk5#获取索引从1到5(不含)的所有元素,结果为2345arr:3#获取索引从0到结束,步长为3的所有元素,结果为|47(2)二维数组的索引与切片。二维数组包含行索引和列索引,在访问时,
11、须使用逗号隔开,先访问行索引再访问列索引.二维数组的索引与切片的一般格式如下。arrayrow_index,column_index#二维数组的索弓I#二维数组的切片arrayrow_siart:row_stop:row_step,column_siart:column_s(op:column_siep5 .数组的运算【教师】组织学生扫码观看“NumPy中常用的数学运算函数”视频(详见教材),让学生对相关知识有一个大致地了解,然后进彳五并解(1)算术运算:相同形状的数组在进行算术运算时,会将数组中对应位置的元素值进行算术运算,如加(+)、减(一)、乘(*)、除(/)、幕(*)运算等。(2)数组
12、广播:NumPy中的广播机制用于解决不同形状数组之间的算术运算问题,它是将形状较小的数组,在横向或纵向上进行一定次数的重复,使其形状与形状较大的数组相同。(3)数组转置:是指将数组的行与列转换,即第1行变成第1列,第2行变成第2列,依次类推,如43的数组转置为3x4的数组。在NumPy中,数组转置可以使用数组的T属性实现,其一般格式如下。array2=array1.T(4)数组变换:NumPy提供了多个函数用于改变数组的形状,如表2-4所示.【教师】通过多媒体展示NumPy中数组变换的函数”表格,介绍相关知识表2-4NUmPy中数组变换的函数函数说明array2=arrayLreshape(S
13、hape)返回一个shape形状的数组,且原数组不变。其中,array1表示原数组,array2表示变形后的数组,ShaPC表示变形后的数组形状arrayI.resize(shape)与reshape。功能一致,但修改原数组。其中,array1表示原数组,ShaPe表示变形后的数组形状array2=arrayl.fla(ten()对数组进行降维,返回折叠后的一维数组,原数组不变。其中,array1表示原数组,array2表示降维后的一维数组array2=arrayI.astype(dtype)转换数组的数据类型,原数组数据类型不变。其中,array1表示原数组,array2表示变换数据类型后的
14、数组,dtype表示目标数据类型6.随机函数numpy.random模块对PylhOn内置的random模块进行了扩展,增加了一些用于高效生成服从多种概率分布样本值的函数,如表2-5所示。【教师】通过多媒体展示“numpy.random模块的随机函数”表格,介绍相关知识表2-5numpy.random模块的随机函数函数说明numpy.random.rand(dO,dl,.,dn)生成)之间的随机浮点数。其中,d0、dl、.dn表示数组的维度numpy.random.randn(d0.d1.,dn)生成一个具有标准正态分布的随机浮点数。其中,dO、dl、dn表示数组的维度numpy.random
15、.randint(Iow,high=None,size=None)生成随机整数,范围是low,high).其中Jow表示起始值;high表示结束值,为可选参数,当省略时生成的随机数范围是0,low);SiZe表示生成随机数的形状,默认为1numpy.random.seed(s)设置随机数发生器种子值,使得相同条件下每次调用随机数生成函数产生相同的值。其中,s表示给定的种子值numpy.random.shuf11e(x)随机打乱数组的顺序。其中,X为原始数组numpy.random.uniform(low,high,size)生成指定区间均匀分布的随机浮点数。其中,low为起始值;high为结束值;size为生成随机数的形状n