李沐深度学习-激活函数/多层感知机文档

multilayer perceptron (MLP):多层感知机(多层神经网络)

(hidden layer)隐藏层:
介于输入层和输出层之间的网络层
输入层不涉及计算,如果一个神将网络由三层组成,则多层感知机层数为2
多层感知机中隐藏层和输出层都是全连接
隐藏层的输出(也叫隐藏层变量或隐藏变量)
隐藏层单元个数≠隐藏层变量个数

将隐藏层的输出作为输出层的输入,联立后得到的式子依然从形式上等价于一个单层神经网络
原因是因为全连接层只是对数据做仿射变换(affine transformation) ,多个仿射变换的叠加仍然是一个仿射变换,所以需要引入非线性变换
例如使用对隐藏变量按元素运算的份线性函数进行变换,再将结果作为下一个全连接层的输入,这个非线性函数即激活函数

激活函数:

1. ReLU(rectified linear unit)给定元素x,该函数定义为:ReLu(x)=max(x,0)
2. sigmoid  变换数据到0-1之间
3. tanh 变换数据到-1,1之间

多层感知机的层数以及隐藏层中隐藏单元个数都是超参数,可以人为设定

def cross_entropy(y_hat, y): # 得到y中每行对应索引位置y_hat每行的索引概率,比如y[0]=8,则索引到y_hat[0]=8处的类别概率值0.4
return -torch.log(y_hat.gather(1, y.view(-1, 1))) # 交叉熵只关心对正确类别的预测概率,通过使用gather函数,可以得到2个样本的标签的预测概率。
#这里y_hat.gather(1, y.view(-1, 1))得到的应该是一个具有多个元素的tensor张量,然后torch.log进行了对数计算

cross_entropy()就是一个交叉熵损失函数,相当于loss函数调用 返回的是标签y对应类别的预测概率的自然对数张量
调用时一般是loss(y_hat,y).sum() sum就是为了将这些概率加和,然后在进行反向传播计算(具体这里的逻辑还是不清楚,以后慢慢会懂得)

在torch.nn.CrossEntropyLoss()函数调用时,他已经计算了批次损失的平均值,所以不需要进行sum()

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

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

相关文章

如何快速打开github

作为一个资深码农,怎么能不熟悉全球最大的同性交友社区——github呢,但头疼的是github有时能打开,有时打不开,这是怎么回事? 其实问题出在github.com解析DNS上,并不是需要FQ。下面提供一个方法,…

hot100:07接雨水

题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 算法思想: 这里采取的是暴力解法和双指针的解法,但是这个题目还有其他的两种解法(单调栈和动态规划,同学可以自行了解&#xff…

Golang 中高级工程师学习笔记

闭包的作用 闭包(Closure)是一种函数值,它可以引用在其外部定义的变量。闭包允许这些变量保持在函数内部,而不是被每次调用时重新创建。闭包的作用主要体现在以下几个方面 封装: 闭包允许函数访问其外部作用域中的变…

vue3前端开发,子组件向父组件传递数据练习

vue3前端开发,子组件向父组件传递数据练习&#xff01; <script setup> import Child from ./Child.vue const getMsg (msg)>{console.log(msg); } </script> <template><h3>Parent</h3><!--绑定事件--><Child get-Msg"getM…

K8S-容器运行时(v1.27)

容器运行时 说明&#xff1a; 自 1.24 版起&#xff0c;Dockershim 已从 Kubernetes 项目中移除。阅读 Dockershim 移除的常见问题了解更多详情。 你需要在集群内每个节点上安装一个 容器运行时 以使 Pod 可以运行在上面。本文概述了所涉及的内容并描述了与节点设置相关的任务…

frida https抓包

web端导入证书、https代理即可解决大部分需求&#xff0c;但是&#xff0c;有些app需要处理ssl pinning验证。 废话不多说。frida处理ssl pin的步骤大体如下。 安装python3.x,并在python环境中安装frida&#xff1a; pip install frida pip install frida-tools下载frida-se…

基于JavaWeb+SSM+Vue基于微信小程序的在线投稿系统的设计和实现

基于JavaWebSSMVue基于微信小程序的在线投稿系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1微信小程序 2 2.2 MYSQL数据库 3 2.3 u…

linux 抓包

在Linux平台下抓包可以使用tcpdump、tshark、ngrep等工具。 使用tcpdump进行抓包的方法如下&#xff1a; 打开终端窗口。输入命令"sudo tcpdump -i [网卡名]"并按回车&#xff0c;其中"[网卡名]"是你要监听的网卡名称1。等待抓包过程完成&#xff0c;抓取…

Rustdesk自建服务搭建好了,打开Win10 下客户端下面状态一直正在接入网络,无法成功连接服务器

环境: Rustdesk1.2.3 自建服务器 有域名地址 问题描述: Rustdesk自建服务搭建好了,打开Win10 下客户端下面状态一直正在接入网络,无法成功连接服务器 解决方案: RustDesk是一款免费的远程桌面软件,它允许用户通过互联网远程连接和控制其他计算机。它是用Rust编程语…

Mybatis原理 - 标签解析

很多开源框架之所以能够流行起来&#xff0c;是因为它们解决了领域内的一些通用问题。但在实际使用这些开源框架的时候&#xff0c;我们都是要解决通用问题中的一个特例问题&#xff0c;所以这时我们就需要使用一种方式来控制开源框架的行为&#xff0c;这就是开源框架提供各种…

小程序样例2:简单图片分类查看

基本功能&#xff1a; 1、根据分类展示图片&#xff0c;点击类目切换图片&#xff1a; 2、点击分类编辑&#xff0c;编辑分类显示&#xff1a; 3、点击某个分类&#xff0c;控制主页该分类显示和不显示&#xff1a; 类目2置灰后&#xff0c;主页不再显示 4、点击分类跳转到具…

Vue记录

vue2、vue3记录 vue2记录 经典vue2结构 index.vue&#xff1a; <template><div>...</div> </template><script>import method from "xxx.js"import component from "xxx.vue"export default {name: "ComponentName&…

typing python 类型标注学习笔记

在Python 3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。 目录 简介为什么需要 Type hints typing常用类型typing初级语法typing基础语法默认参数及 Optional联合类型 (Union Type)类型别名 (Type Alias)子类型…

Redis 面试题 | 02.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【Linux】第三十一站:管道的一些应用

文章目录 一、我们之前的|(竖划线)管道二、自定义shell三、使用管道实现一个简易的进程池1.详解2.代码3.一个小bug4.最终代码 一、我们之前的|(竖划线)管道 cat test.txt | head -10 | tail -5如上代码所示&#xff0c;是我们之前所用的管道 我们拿下面这个举个例子 当我们用…

【Linux】安装n卡驱动以及可能遇到的问题

文章目录 1.换源以及更新2.安装依赖3. 安装n卡驱动独显与核显切换nvidia-settings消失忘记安装依赖无法进入图形化界面的急救命令行无响应办法 1.换源以及更新 目前&#xff0c;换源完全只需要鼠标点点点就可以完成了&#xff0c;打开应用列表里的Software & Updates&…

Spring DI

目录 什么是依赖注入 属性注入 构造函数注入 Setter 注入 依赖注入的优势 什么是依赖注入 依赖注入是一种设计模式&#xff0c;它通过外部实体&#xff08;通常是容器&#xff09;来注入一个对象的依赖关系&#xff0c;而不是在对象内部创建这些依赖关系。这种方式使得对象…

macOS修改默认时区显示中国时间

默认时区不是中国,显示时间不是中国时间 打开终端 ,删除旧区,并复制新时区到etcreb sudo -rm -rf /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 重启系统后时间显示为中国时间

SQL语句的执行顺序

查询语句语法&#xff1a; SELECT字段列表 FROM表名字段 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后的条件列表 ORDER BY排序字段列表 LIMIT分页参数 执行顺序 #先找到表格 FROM表名字段 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后的条件列表 SELECT字段列表 …

4.C语言——数组

数组 1.什么是数组2.一维数组1.数组定义2.数组赋值3.数组的使用4.数组的存储地址 3.二维数组1.数组定义2.数组赋值3.数组的使用4.数组的存储地址 4.数组名5.数组越界 1.什么是数组 数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量 所有的数组都是由…