吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):Lab01 神经元和层

目录

  • 导入Tensorflow的库
  • 无激活函数 vs 有激活函数?
    • 1.无激活函数
    • 2.有激活函数
  • 无激活函数的神经元-回归/线性模型
    • 1.创建训练集散点图
    • 2.创建层
    • 3.层输入
    • 4.获取层参数
    • 5.层参数的形状
    • 6.手动设置层的参数
    • 7.层计算vs线性回归模型计算
  • 有激活函数sigmoid的神经元
    • 1.创建训练集散点图
    • 2.快速创建具备前向传播算法的神经网络模型
    • 3.获取模型信息
    • 4.获取模型层信息
    • 5.神经网络模型计算 vs sigmoid计算
  • 总结

导入Tensorflow的库

Tensorflow 是由 Google 开发的机器学习包。2019 年,Google 将 Keras 集成到 Tensorflow 中,并发布了 Tensorflow 2.0。Keras 是由 François Chollet 独立开发的框架,它为 Tensorflow 提供了一个简单的、以层为中心的接口。本课程将使用 Keras 接口。

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras import Sequential
from tensorflow.keras.losses import MeanSquaredError, BinaryCrossentropy
from tensorflow.keras.activations import sigmoid
from lab_utils_common import dlc
from lab_neurons_utils import plt_prob_1d, sigmoidnp, plt_linear, plt_logistic
plt.style.use('./deeplearning.mplstyle')
import logging
logging.getLogger("tensorflow").setLevel(logging.ERROR)
tf.autograph.set_verbosity(0)

无激活函数 vs 有激活函数?

1.无激活函数

神经元使用线性回归模型,即f(x)=wx+b。

2.有激活函数

神经元使用sigmoid函数,sigmoid函数是激活函数,wx+b不能称为激活函数,它只是用来计算sigmoid中的z。神经元通过sigmoid函数的输出才能被称为神经元的激活项(截止目前的课,神经元都使用逻辑回归模型)。
在这里插入图片描述

无激活函数的神经元-回归/线性模型

1.创建训练集散点图

使用第一课时的例子,房价预测,绘制散点图。
在这里插入图片描述

2.创建层

参数1:指定神经元数量,餐数2:指定激活函数,此处为线性激活函数。Dense表示全连接层,截止目前我们学习的神经网络都是使用这种类型的层。
在这里插入图片描述

3.层输入

-参数必须为二维数组。
在这里插入图片描述

4.获取层参数

给层输入,linear_layer就被实例化了,才能够查看层的参数,否则无法查看,此时w,b参数是被自动初始化。
在这里插入图片描述

5.层参数的形状

  • w:(输入特征的数量,本层神经元数量)。
  • b:(本层神经元数量,)。

6.手动设置层的参数

  • set_weights设置层的神经元参数w,b。
  • 本例中的神经元数量为1,输入的特征数量为1。
    在这里插入图片描述

7.层计算vs线性回归模型计算

  • 使用一个训练样本,可以看到层计算的结果和线性回归模型计算的结果相同。
    在这里插入图片描述
  • 使用全部的训练样本,看到两者计算结果也相同。在这里插入图片描述

有激活函数sigmoid的神经元

1.创建训练集散点图

在这里插入图片描述

2.快速创建具备前向传播算法的神经网络模型

  • Sequential是构建神经网络模型的一种便捷方式,可以设置多层,并且自动使用前向传播。参数1:指定本层神经元数量。参数2:指定输入样本的特征数。参数3:设置激活函数。参数4:设定层名称。在这里插入图片描述

3.获取模型信息

包含每个层的名称、类型、输出形状和参数数量等。对于快速查看模型结构和参数数量很有用。示例中只有一个神经元和一个特征,因此参数只有一个w和b,因此Param-2。
在这里插入图片描述

4.获取模型层信息

在这里插入图片描述

5.神经网络模型计算 vs sigmoid计算

  • 手动设定wb,带入一个训练样本,两者计算的值是一样的。
    在这里插入图片描述

  • 使用神经网络模型预测,plt_logistic分别展示了模型预测和sigmoid预测的过程。
    在这里插入图片描述

  • 模型的预测
    在这里插入图片描述

  • sigmoid函数的预测。
    在这里插入图片描述

  • 阴影反应了sigmoid的输出,使用Tensorflow和使用原始的sigmoid预测分类一致。
    在这里插入图片描述

总结

有激活函数的案例和无激活函数的案例,展示了两种不同的构建一个层的方式,一种是以Dense为主的函数式API形式创建层以及和层的操作,另一种是以Sequential为主的创建一个层的模型,以及通过模型对层的相关操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

武汉星起航深耕亚马逊跨境电商,引领中国卖家开拓全球市场新篇章

在全球经济深度融合的当下,跨境电商已成为连接中国与世界市场的重要桥梁。作为跨境电商领域的佼佼者,武汉星起航电子商务有限公司凭借对亚马逊平台的深入了解和丰富经验,成功引领了中国卖家开拓全球市场的新篇章。 亚马逊,这家起…

计算机发展史故事【7】

二战建奇勋 布雷契莱庄园当然不信德寇的邪说,他们把大约200 名精干人员集中在“3号棚”,四班轮换,24 小时值守,专门对付德国的“斯芬克司之谜”。图林则带着副手、象棋冠军亚历山大,领导着“8 号棚”,进行…

安卓开发--新建工程,新建虚拟手机,按键事件响应

安卓开发--新建工程,新建虚拟手机,按键事件响应 1.前言2.运行一个工程2.1布局一个Button2.2 button一般点击事件2.2 button属性点击事件2.2 button推荐点击事件 本篇博客介绍安卓开发的入门工程,通过使用按钮Buton来了解一个工程的运作机制。…

【论文合集1】- 存内计算加速机器学习

本章节论文合集,存内计算已经成为继冯.诺伊曼传统架构后,对机器学习推理加速的有效解决方案,四篇论文从存内计算用于机器学习,模拟存内计算,对CNN/Transformer架构加速角度阐述存内计算。 【1】WWW: What, When, Where…

Web实时通信的学习之旅:WebSocket入门指南及示例演示

文章目录 WebSocket的特点1、工作原理2、特点3、WebSocket 协议介绍4、安全性 WebSocket的使用一、服务端1、创建实例:创建一个webScoket实例对象1.1、WebSocket.Server(options[,callback])方法中options对象所支持的参数1.2、同样也有一个加密的 wss:/…

2024第九届数维杯数学建模论文模板(内附LaTeX+Word)

一年一度的2024年第九届数维杯国赛报名进行中!相信很多同学们已经摩拳擦掌蓄势待发了! 经历三天比赛,最后提交的论文就是最终答卷,那么一篇数模论文,包括哪些内容呢? 一篇完整的数模论文,包括…

【初阶数据结构】单链表经典OJ题

目录标题 原题展现题目解析代码展现1.创建新节点2.拷贝random指针3.将新节点尾插 原题展现 该题是力扣上的第138题,题目链接如下:随机链表的复制。 题目解析 我们发现这个链表和一般的链表存在着一点点区别,那就是每个节点多了一个random指…

遥控挖掘机之ESP8266调试心得(1)

ESP8266调试心得 1. 前言2.遇到的问题2.1 ESP8266模块建立TCP连接时候报错2.2 指令异常问题 3. 更新ESP8266固件3. ESP8266的部分AT指令3. 连接步骤3.1 模块与电脑连接3.2.1 电脑上的设置3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤 3.2 模块与模…

Python深度学习基于Tensorflow(3)Tensorflow 构建模型

文章目录 数据导入和数据可视化数据集制作以及预处理模型结构低阶 API 构建模型中阶 API 构建模型高阶 API 构建模型保存和导入模型 这里以实际项目CIFAR-10为例,分别使用低阶,中阶,高阶 API 搭建模型。 这里以CIFAR-10为数据集,C…

SparkStructuredStreaming状态编程

spark官网关于spark有状态编程介绍比较少,本文是一篇个人理解关于spark状态编程。 官网关于状态编程代码例子: spark/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredComplexSessionization.scala at v3.5.0 apache/spark (github…

智能评估时代:SurveyKing开源问卷系统YYDS

最近有同事在设计问卷系统,我碰巧在 GitHub 上发现了一个开源的问卷/考试系统,觉得它非常不错,给他推荐了下。今天我打算和家人们分享一下这个发现。 项目介绍 官方网站:https://surveyking.cn/ github地址:https://…

springboot整合websocket,超简单入门

springBoot整合webSocket,超简单入门 webSocket简洁 WebSocket 是一种基于 TCP 协议的全双工通信协议,它允许客户端和服务器之间建立持久的、双向的通信连接。相比传统的 HTTP 请求 - 响应模式,WebSocket 提供了实时、低延迟的数据传输能力。…

数据库(MySQL)基础:约束

一、概述 1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2.目的:保证数据库中数据的正确、有效性和完整性。 3.分类 约束描述关键字非空约束限制该字段的数据不能为nullnot null唯一约束保证该字段的所有数据都是唯一…

QX---mini51单片机学习---(6)独立键盘

目录 1键盘简绍 2按键的工作原理 3键盘类型 4独立键盘与矩阵键盘的特点 5本节相关原理图 6按键特性 7实践 1键盘简绍 2按键的工作原理 内部使用轻触按键,常态按下按键触点才闭合 3键盘类型 编码键盘与非编码键盘 4独立键盘与矩阵键盘的特点 5本节相关原理…

硬性清空缓存的方法

前端发布代码后,我们是需要刷新页面再验证的。有时候仅仅f5 或者ctrlshiftdelete快捷键仍然有历史缓存,这时可以通过下面的方法硬性清空缓存。 以谷歌浏览器为例,打开f12,右键点击刷新按钮,选择【清空缓存并硬性加载】…

计算机网络5——运输层2TCP原理

文章目录 一、传输控制协议 TCP 概述1、TCP最主要的特点2、TCP的连接 二、可靠传输的工作原理1、停止等待协议1)无差错情况2)出现差错3)确认丢失和确认迟到4)信道利用率 2、连续 ARQ协议 三、TCP 报文段的首部格式 一、传输控制协…

代码审计-PHP模型开发篇动态调试反序列化变量覆盖TP框架原生POP链

知识点 1、PHP审计-动态调试-变量覆盖 2、PHP审计-动态调试-原生反序列化 3、PHP审计-动态调试-框架反序列化PHP常见漏洞关键字 SQL注入: select insert update delete mysql_query mysqli等 文件上传: $_FILES,type"file"&…

Kafka 执行命令超时异常: Timed out waiting for a node assignment

Kafka 执行命令超时异常: Timed out waiting for a node assignment 问题描述: 搭建了一个kafka集群环境,在使用命令行查看已有topic时,报错如下: [rootlocalhost bin]# kafka-topics.sh --list --bootstrap-server…

Vue自定义封装音频播放组件(带拖拽进度条)

Vue自定义封装音频播放组件(带拖拽进度条) 描述 该款自定义组件可作为音频、视频播放的进度条,用于控制音频、视频的播放进度、暂停开始、拖拽进度条拓展性极高。 实现效果 具体效果可以根据自定义内容进行位置调整 项目需求 有播放暂停…

51单片机软件环境安装

keli5的安装 把CID放到破解程序中 破解程序会给一串数字然后填到那个框中 驱动程序的安装 安装完了以后 设备管理器会出现这个 同时c盘会出现这个文件夹