北京大学Tensorflow2.0笔记

激活函数

目前很少用这个激活函数,因为在深度神经网络中更新参数时需要从输出层到输入层逐层进行链式求导,而sigmoid函数倒数值为0-0.25之间,链式求导需要多层导数连续相乘,会出现多个0-0.25之间的连续相乘,结果趋于零,产生梯度消失,无法进行参数更新
目前很少用这个激活函数,因为在深度神经网络中更新参数时需要从输出层到输入层逐层进行链式求导,而sigmoid函数倒数值为0-0.25之间,链式求导需要多层导数连续相乘,会出现多个0-0.25之间的连续相乘,结果趋于零,产生梯度消失,无法进行参数更新
在这里插入图片描述
在这里插入图片描述
使用中应避免负数特征进入RELU函数,否则会导致神经元死亡
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
过拟合的解决方法:L1正则化和L2正则化
在这里插入图片描述
用Tensorflow API :tf.keras搭建网络八股
六步法:
1、import
import相关模块,如:import tensorflow as tf
2、train,test
要指定训练集的输入特征x_train和训练集的标签y_train,还可以指定测试集的输入特征x_test和测试集的标签y_test
3、在Sequential()中搭建网络结构:model = tf.keras.model.Sequential,逐层描述没层网络,相当于走了一遍前向传播
4、model.compile(),在compile()中配置训练方法,告知训练时选择哪种优化器,选择哪种损失函数,选择哪种评测指标
5、model.fit ()在fit中执行训练过程,告知训练集和测试集的输入特征和标签,告知每一个batch是多少,告知要迭代多少次数据集
6、model.summary(),用summary打印出网络的结构和参数统计
注:以上六部为以后写代码的提纲,一定一定一定要记住,重要的事情说三遍
在这里插入图片描述
可以认为Sequential()是一个容器,封装了一个神经网络结构,在Senquential中要描述从输入层到输出层每一层的网络结构,每一层的网络结构可以是拉直层Flatten(),这一层不含计算,只是形状转换,把输入特征拉直变成一维数组;
在这里插入图片描述
在这里插入图片描述
batch_size=每次喂入神经网络的样本数
epochs=迭代多少次数据集
在这里插入图片描述

注一

model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)
x_train——训练集输入特征
y_train——训练集标签
batch_size——训练时一次喂入神经网络多少组数据
epochs——数据集迭代循环多少次
validation_split=0.2——告知从训练集中选择20%的数据作为测试集
validation_freq=20——每迭代20次训练集要在测试集中验证一次准确率

注二

loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
由于神经网络末端使用了Softmax函数,使得输出是概率分布而不是原始输出,所以from_logits是False

注三

metrics=[‘sparse_categorical_accuracy’])
由于鸢尾花数据集给的标签是0,1,2是数值,神经网络前向传播的输出是概率分布,所以选择sparse_categorical_accuracy作为评测指标

注四

用summary打印出网络结构和参数统计

用Sequential可以搭建出上层输出就是下层输入的顺序网络结构,无法写出一些带有跳连的非顺序网络结构,这个时候可以选择用类class搭建神经网络结构
在这里插入图片描述
在这里插入图片描述
可以认为__init__函数准备出搭建网络所需的各种积木
call函数调用__init__中搭建好的积木,实现前向传播

第五章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源新工具 Azure Developer CLI

点击上方蓝字关注我们(本文阅读时间:5分钟)翻译自 Savannah Ostrowski 的博客今天,我们很高兴地宣布 Azure Developer CLI (azd) 公共预览版——一种新的开源工具,可加快入门Azure 所需的时间。Azure Developer CLI 提供了对开发者…

MapReduce中的InputFormat(1)概述

1 概念InputFormat用于描述输入数据的格式,提供以下两个功能:A、数据切分:按照某种策略将输入的数据切分成若干split,以便确定Map Task个数,以及对应的Split。B、提供数据:为Mapper提供输入数据&#xff0c…

在anaconda中运行jupyter notebook,无法自动打开浏览器的解决方案,亲测100%有效

运行jupyter notebook,无法自动打开浏览器的解决方案 第一步 找到 Jupyter_notebook_config.py文件,无论你anaconda装在哪个盘,这个文件一般都在C盘,我的在C:\Users\wyf峰.jupyter 如果没有可以在anaconda prompt中输入以下语句…

本地配置_Hadoop本地模式的安装配置

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储。从其定义就可以发现,它解決了两大问题:大数据存储、大数据分析。也…

基于 Filter 实现条件路由

基于 filter 实现条件路由Intro在我们的项目有几个测试用的接口,有的接口我们往往不想在生产环境上使用,于是会在代码里判断当前环境是不是生产环境,如果不是生产环境才允许执行,否则就返回一个错误,这样的接口多了之后…

ORM框架通过映射(反射)获取数据库的数据

ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息&#…

找不到r低版本_R 语言与数据挖掘直播班开始招生,生信分析帮你发高分文章

数据单薄很难支撑文章内容?数据有了不知道怎么处理作出高级的图片?这个时候需要的是生信分析——深度的数据挖掘和分析处理,可以帮助临床医生通过数据处理得到自己想要的信息,更快速地发文章。学习哪种生信分析的工具?…

读两本敦煌书杂记-敦煌由盛转衰(二)

公元420-589年,中国分为南北两个部分(史称魏晋南北朝,由西晋末年八王之乱引起,北方游牧少数民族趁机侵扰中原,并先后建立多个少数民族政权,又称“五胡乱华”。“五胡”主要指匈奴、鲜卑、羯、羌、氐五个胡人…

第三方app_为什么第三方APP不能下载呢?

这些年科学技术发展日新月异,信息技术和网络技术也层出不穷,大众出行工具的汽车电器化集成度越来越高,汽车上娱乐主机的智能化和网络化程度也越来越高,汽车娱乐主机也成了人民除手机外的第二个娱乐工具,用惯了手机娱乐…

WPF效果第一百九十七篇之Path范围内拖拽

前面效果中分享了彩色马蹄图的效果;这不今天再次在马蹄图的基础上,实现只能在Path内的拖拽效果;闲话不多扯直接看效果:1、关于拖拽顶点实现色域范围选择,参考:https://www.codeproject.com/Tips/828310/The-simplest-WPF-diagram-designer-part2、通过Blend绘制了色度图中间区域…

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类、成员属性或成员方法,使他们具有特定的功能,例如final、static、const等关键字。还有一些比较实用的魔术方法,用来提高类或对象的应用能力,例如__call()…

如何在论文中自动生成标准的参考文献格式

首先下载EndNote软件,word中会自动显示EndNote选项 选择EndNote 选择导出会下载一个txt文件 打开EndNote中向下的箭头导入(从文件导入文献到库中)找到刚才下载的txt文件 点击选择按键找到txt文件 选择打开即可 选择导入 选择导入的内容…

PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues

Programming Assignment2 - Deque and Randomized Queues Review Assignment Specification 课程笔记 Subtext: Modular Programming Stacks and Queues are fundamental data types Value: collection of objectsBasic Operation: insert, remove, iterate.Difference: which …

TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇...

最近遇到一个线上报警:服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接,在解决过程中,通过查阅经典教材和技术文章,加深了对TCP网络问题的理解。作为笔记,记录于此。 备注:本文主要介绍…

开源许可证,欢迎来到云时代

出品 | OSC开源社区(ID:oschina2013)作者 | 唐建法前言开源许可证从最早的 GPL 开始, 逐渐演进到 GPLv2 和 v3,中间还有 Apache、MPL、AGPL、LGPL 等,但是近几年来有一批新的许可证的出现,引起了社区的一些…

selenium - Select类 - 下拉框

WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下图: from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleepdriver webdriver.Chrome() driver.implicitly_wait(10) drive…

.NET 7 预览版 7

点击上方蓝字关注我们(本文阅读时间:12分钟)今天我们发布了 .NET 7 预览版 7。这是 .NET 7 的最后一个预览版,下一个版本将是我们的第一个候选版本 (RC)。.NET Conf 2022 的日期已经公布!请于 2022 年 11 月…

android--------volley之网络请求和图片加载

为什么80%的码农都做不了架构师?>>> Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。 Volley的特性 封装了的异步的请求API。Volley 中大多是基于接口的设计,可配置性强。一个优雅和稳健的请求队列,一定程度符…

经典算法学习——冒泡排序

冒泡排序是我们学习的第一种排序算法。应该也算是最简单、最经常使用的排序算法了。无论怎么说。学会它是必定的。今天我们就用C语言来实现该算法。演示样例代码已经上传至:https://github.com/chenyufeng1991/BubbleSort算法描写叙述例如以下:&#xff…

Mybatis之设计模式之装饰者模式

了解,什么是装饰者模式? 1.定义 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 2.特点 1 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真…