理解激活函数,多个网络层之间如何连接

news2025/4/4 0:29:15

1. 激活函数如何在两个层之间作用

如果不在两个层之间添加激活函数,模型将无法学习非线性关系,表现出像线性模型一样的局限性。
LeakyReLU(0.2) 是一个激活函数,它的作用是对每一层的输出进行非线性转换。激活函数通常在神经网络中用于增加网络的非线性能力,使得网络能够拟合更复杂的函数。

  1. LeakyReLU 的定义
    LeakyReLU 是一种变种的 ReLU 激活函数。与普通的 ReLU 激活函数不同,LeakyReLU 对负值部分并不会直接输出 0,而是给负值部分留下一点点“泄漏”:
    在这里插入图片描述
    其中,α(通常为 0.01)是负半轴的斜率,LeakyReLU 通过给负值加上一个较小的斜率(通常是 0.01 或其他小值)来避免神经元完全“死亡”的问题(即神经元在训练过程中因为权重更新过小导致输出始终为零)。

在神经网络中,LeakyReLU 会接收上一层的输出并对其进行变换,从而得到下一层的输入。

让我们通过一个简化的例子来说明如何将 LeakyReLU 用在网络中。

model = []
model += block(nROI, int(nROI/2)) + block(int(nROI/2), int(nROI/4))

这里的 block 函数定义了一个标准的网络块,其中包含以下内容:

def block(in_layer, out_layer):
    layers = [nn.Linear(in_layer, out_layer, bias=False)]
    layers.append(nn.LeakyReLU(0.2, inplace=True))
    return layers

block函数的目的是将多个神经网络层组合成一个模块。这个模块返回的是一个列表(layers),其中每个元素都是一个nn.Module对象。nn.Module是PyTorch中所有神经网络层和功能模块的基类,包括激活函数(如nn.ReLU、nn.Sigmoid等)。因此,block函数中的每个元素可以是一个神经网络层,也可以是一个激活函数模块。通过这种方式,block函数能够灵活地组合不同的层和功能模块,形成一个完整的神经网络模块。

假设我们调用了 block(8, 4) 和 block(4, 2)。这些 block 函数会返回一组层(包括线性层以及 LeakyReLU 激活函数)。
比如 block(8, 4)会得到:

[nn.Linear(8, 4, bias=False), nn.LeakyReLU(0.2)]

这个模块先通过 nn.Linear(8, 4, bias=False) 将输入的 8 维数据转换为 4 维数据,然后将结果传递给 LeakyReLU(0.2) 激活函数,进行非线性变换。
假设输入数据为 x = [2, -3, 1, 0.5, …],经过线性层后输出为 4 维数据(假设输出为 [1.0, -0.5, 3.2, 0.1])。然后,经过 LeakyReLU 变换:

1.0 → 1.0(因为大于 0)

-0.5 → -0.5 * 0.2 = -0.1(因为小于 0,乘以 0.2)

3.2 → 3.2(因为大于 0)

0.1 → 0.1(因为大于 0)

最终经过 LeakyReLU 处理后的输出为:[1.0, -0.1, 3.2, 0.1]。

2 多个网络层之间如何连接

网络层是通过每个层的输出作为下一个层的输入来连接的。当一个神经网络的层经过 LeakyReLU 激活后,其输出成为下一层的输入。

在你的代码中,每个 block 函数会返回一个层列表,这些层会依次执行:

model += block(nROI, int(nROI/2)) + block(int(nROI/2), int(nROI/4))

假设输入数据 x 的维度为 nROI=8,那么这个 block 会返回如下的网络结构:

nn.Linear(8, 4):将输入的 8 维数据映射到 4 维。

nn.LeakyReLU(0.2):对 4 维输出应用 LeakyReLU 激活函数。

然后继续使用另一个 block(4, 2):

nn.Linear(4, 2):将 4 维数据映射到 2 维。

nn.LeakyReLU(0.2):对 2 维输出应用 LeakyReLU 激活函数。

block 函数的作用是将一些神经网络层组合成一个列表。你将这些层组合起来,形成一个完整的神经网络结构。通过 model +=,这些层会被加到 model 列表中,从而组成模型的一部分。

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

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

相关文章

HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板

HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板 这里写目录标题 HTML5 Canvas绘画板项目实战:打造一个功能丰富的在线画板项目介绍技术栈核心功能实现1. 画板初始化与工具管理2. 多样化绘画工具3. 事件处理机制 技术要点分析1. Canvas上下文优化…

2025亲测有用 yolov8 pt转onnx转ncnn 部署安卓

参考文章:pt转onnx转ncnn模型(yolov8部署安卓)_best.pt 转ncnn模型-CSDN博客 Yolov8-Ncnn模型部署Android,实现单一图片识别_yolov8转ncnn-CSDN博客 onnx转化为ncnn这条路径现在已经落后了,更多的是通过pnnx转化为nc…

cursor的.cursorrules详解

文章目录 1. 文件位置与作用2. 基本语法规则3. 常用规则类型与示例3.1 忽略文件/目录3.2 限制代码生成范围3.3 自定义补全建议3.4 安全规则 4. 高级用法4.1 条件规则4.2 正则表达式匹配4.3 继承规则 5. 示例文件6. 注意事项 Cursor 是一款基于 AI 的智能代码编辑器,…

MySQL 入门大全:运算符

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

mysql中将外部文本导入表中过程出现的错误及解决方法

问题一: MySQL Loading local data is disabled; this must be enabled on both the client and server sides (MySQL加载本地数据被禁用;这必须在客户端和服务器端同时启用) 解决方法: 1,依次输入以下命令…

蓝牙数字音频和模拟音频优劣势对比?

蓝牙模块中我们常说的模拟音频和数字音频,是指两种不同的信号处理技术,它们都可以实现声音的录制、存储、编辑、压缩或播放,但也有一些区别和特点。本文将为您深入解析蓝牙数字音频和模拟音频的一些常见区别。 数字音频: 蓝牙数…

WiFi(无线局域网)技术的多种工作模式

WiFi(无线局域网)技术支持多种工作模式,以满足不同的网络需求和应用场景。以下是主要的WiFi工作模式及其详细说明: 1. 基础设施模式(Infrastructure Mode) [无线接入点 (AP)]/ | \ [客户端…

VMware+Ubuntu+VScode+ROS一站式教学+常见问题解决

目录 一.VMware的安装 二.Ubuntu下载 1.前言 2.Ubuntu版本选择 三.VMware中Ubuntu的安装 四.Ubuntu系统基本设置 1.中文更改 2.中文输入法更改 3. 辅助工具 vmware tools 五.VScode的安装ros基本插件 1.安装 2.ros辅助插件下载 六.ROS安装 1.安装ros 2.配置ROS…

音视频(一)ZLMediaKit搭建部署

前言 一个基于C11的高性能运营级流媒体服务框架 全协议支持H264/H265/AAC/G711/OPUS/MP3,部分支持VP8/VP9/AV1/JPEG/MP3/H266/ADPCM/SVAC/G722/G723/G729 1:环境 ubuntu22.* ZLMediaKit downlaod:https://github.com/ZLMediaKit/ZLMediaKit or https://g…

leetcode25.k个一组翻转链表

思路源自 【力扣hot100】【LeetCode 25】k个一组翻转链表|虚拟节点的应用 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(in…

配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公

由于开发工作的需要,我的办公桌上目前有多台电脑。一台是 i7 配置的电脑,运行 UOS V20 系统,作为主力办公电脑,负责处理企业微信、OA 等任务,并偶尔进行代码编译和验证软件在 UOS V20 系统下的兼容性;另一台…

配置Next.js环境 使用vscode

配置 Next.js 的开发环境其实非常简单,下面是一个从零开始的完整步骤,适用于 Windows、macOS 和 Linux: ✅ 一、准备工作 确保你已经安装了以下软件: 1. Node.js(推荐 LTS 版本) 官网:https:/…

Vite相关知识点

一、自动导入vue vue-router pinia 1、安装unplugin-auto-import npm install unplugin-auto-import -D 2、引入 import AutoImport from unplugin-auto-import/vite; 3、配置vite.config.ts plugins: [ vue(), vueDevTools(), AutoImport({ include: [ /…

RCE复现

1.过滤flag <?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__);代码审计过滤了"flag"关键词&#xff0c;但限制较弱&#xff0c;容易绕过 ?csystem("ls&…

电子电气架构 --- 域控制器和EE架构关系

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测

多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现CPO-LSTM冠豪猪算法优化长短期…

使用PyTorch实现LeNet-5并在Fashion-MNIST数据集上训练

本文将展示如何使用PyTorch实现经典的LeNet-5卷积神经网络&#xff0c;并在Fashion-MNIST数据集上进行训练和评估。代码包含完整的网络定义、数据加载、训练流程及结果可视化。 1. 导入依赖库 import torch from torch import nn from d2l import torch as d2l 2. 定义LeNet…

19_20 js es6

目录 ES6 一、let 和 const关键字 1.1 var 和 let const的区别&#xff1f; 1.2 let 和const的区别 1.3 关于块级作用域 二、箭头函数 2.1箭头函数的特点 2.2 箭头函数的特殊性 this的问题 arguments参数集合 2.3函数传递参数时的默认值 2.4 箭头函数使用的场景有哪…

【强化学习】近端策略优化算法(PPO)的理解

本篇博客参考自上海大学刘树林老师的课程。B站课程链接&#xff1a;https://www.bilibili.com/video/BV17t4geUEvQ/?spm_id_from333.337.search-card.all.click&vd_source74af336a587568c23a499122c8ffbbee 文章目录 传统策略梯度训练面临的问题其他方法的改进TRPO算法的贡…

5.好事多磨 -- TCP网络连接Ⅱ

前言 第4章节通过回声服务示例讲解了TCP服务器端/客户端的实现方法。但这仅是从编程角度的学习&#xff0c;我们尚未详细讨论TCP的工作原理。因此&#xff0c;将详细讲解TCP中必要的理论知识&#xff0c;还将给出第4章节客户端问题的解决方案。 一、回声客户端完美实现 第4章…