PyTorch学习笔记之激活函数篇(四)

4、 Leaky ReLU 函数

4.1 公式

Leaky ReLU函数的公式:

f ( x ) = { x , x > = 0 λ x , x < 0 , λ ∈ ( 0 , 1 ) f(x) =\begin{cases} x&,x>=0 \\ \lambda x&,x<0,\lambda \in(0,1) \end{cases} f(x)={xλx,x>=0,x<0,λ(0,1)
Leakly ReLU函数的导函数:

f ′ ( x ) = { 1 , x > = 0 λ , x < 0 , λ ∈ ( 0 , 1 ) f'(x) = \begin{cases} 1&,x>=0 \\ \lambda &,x<0,\lambda \in(0,1) \end{cases} f(x)={1λ,x>=0,x<0,λ(0,1)

4.2 对应的图像

在这里插入图片描述

4.3 生成对应的图像代码

import numpy as np
import matplotlib.pyplot as plt

# 定义LeakyReLU函数
def leaky_relu(x, alpha=0.01):
    return np.where(x >= 0, x, alpha * x)

# 定义LeakyReLU的导数函数
def leaky_relu_derivative(x, alpha=0.01):
    return np.where(x >= 0, 1, alpha)

# 生成x值的范围
x = np.linspace(-10, 10, 100)

# 计算LeakyReLU函数值
y_leaky_relu = leaky_relu(x)

# 计算LeakyReLU导数值
y_leaky_relu_derivative = leaky_relu_derivative(x)

# 绘制LeakyReLU函数图像
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.plot(x, y_leaky_relu, label='LeakyReLU')
plt.title('LeakyReLU Function')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()

# 绘制LeakyReLU导数图像
plt.subplot(1, 2, 2)
plt.plot(x, y_leaky_relu_derivative, label='LeakyReLU Derivative')
plt.title('LeakyReLU Derivative')
plt.xlabel('x')
plt.ylabel('dy/dx')
plt.legend()

# 显示图像
plt.tight_layout()
plt.show()

4.4 优点与不足

Leaky ReLU函数(ReLU的改进):
1、与ReLU函数相比,把x的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度问题;有助于扩大 ReLU 函数的范围,通常𝜆λ的值为 0.01 左右;函数范围是负无穷到正无穷。
2、LeakyRelu激活函数通过在负半轴添加一个小的正斜率(使得负轴的信息不会全部丢失)来解决ReLU激活函数的“死区”问题,该斜率参数𝜆λ是手动设置的超参数,一般设置为0.01。通过这种方式,LeakyRelu激活函数可以确保模型训练过程中神经元的权重在输入小于0的情况下依然会得到更新。
3、不会出

4.5 Leaky ReLU 函数

在PyTorch中,torch.leaky_relu 函数是用于实现 Leaky ReLU 激活函数的。Leaky ReLU 是一种改进的 ReLU(Rectified Linear Unit)函数,它允许小的非零梯度当输入值为负时。这有助于解决ReLU在负值区域的神经元“死亡”问题。

torch.leaky_relu 的基本使用如下:

import torch

# 创建一个张量
x = torch.tensor([-5.0, -3.0, 0.0, 2.0, 5.0])

# 应用 Leaky ReLU 函数
y = torch.leaky_relu(x, negative_slope=0.01)

print(y)

这里,negative_slope 参数控制负值区域的斜率。默认值是 0.01,这意味着当输入值小于零时,输出将是输入值乘以 0.01。对于非负输入值,Leaky ReLU 的行为类似于普通的 ReLU 函数,即输出就是输入值本身。

如果你想要在一个神经网络模型中使用 Leaky ReLU,你可以在定义模型时将其作为激活函数使用,例如:

import torch.nn as nn

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(10, 50)
        self.leaky_relu = nn.LeakyReLU(negative_slope=0.01)
        self.fc2 = nn.Linear(50, 1)

    def forward(self, x):
        x = self.fc1(x)
        x = self.leaky_relu(x)
        x = self.fc2(x)
        return x

model = MyModel()

在这个例子中,nn.LeakyReLU 被用作 MyModel 模型中的一个层,它将应用于全连接层 self.fc1 的输出。在模型的前向传播过程中,数据会首先通过全连接层,然后经过 Leaky ReLU 激活函数,最后再通过另一个全连接层。

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

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

相关文章

MySQL连接数不足导致服务异常GetConnectionTimeoutException

文章目录 场景复现解决方案一、调整连接数二、优化程序 场景复现 已经上线正常运行的项目突然很多功能无法使用&#xff0c;查看程序日志发现MySQL报错&#xff0c;异常信息: Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.Ge…

分布式(计算机算法)

目录 分布式计算 分布式​编辑 分布式和集群 分布式和集群的应用场景 分布式应用场景 集群应用场景 哪种技术更优、更快、更好呢 性能 稳定性 以下概念来源于百度百科 分布式计算 分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息…

【ArcGISProSDK】添加异步执行时进度窗口

运行结果 代码 protected override async Task InitializeAsync(){using (ProgressorSource progressorSource new ProgressorSource("初始化...")){await QueuedTask.Run(delegate{MessageBox.Show(licenseExpirationDate.ToString());}, progressorSource.Progres…

介绍一下Spring的AOP

一、问题解析 典型回答 AOP(Aspect-Oriented Programming)&#xff0c;即面向切面编程&#xff0c;用人话说就是把公共的逻辑抽出来&#xff0c;让开发者可以更专注于业务逻辑开发。 和IOC一样&#xff0c;AOP也指的是一种思想。AOP思想是OOP&#xff08;Object-Oriented Prog…

【Java刷题篇】滑动窗口

文章目录 &#x1f4c3;滑动窗口&#x1f4dc;基本概念&#x1f4dc;核心思路 ✍最大连续1的个数 III✍水果成篮 &#x1f4c3;滑动窗口 &#x1f4dc;基本概念 滑动窗口是一种基于双指针的一种思想&#xff0c;两个指针指向的元素之间形成一个窗口。 分类&#xff1a;窗口有…

C++语言现在还有人学吗?

在当今信息爆炸的时代&#xff0c;计算机编程语言繁多&#xff0c;涌现了许多新兴的编程语言&#xff0c;如Python、JavaScript等。针对C编程语言是否还有人学的问题&#xff0c;我个人认为可以从以下几个方面进行讨论。 首先&#xff0c;C诞生于1979年&#xff0c;起初是为了开…

AI预测福彩3D第12弹【2024年3月18日预测--第3套算法重新开始计算第1次测试】

前面的第2套算法感觉效果比较差&#xff0c;与真实结果差距较大&#xff0c;因此&#xff0c;果断放弃第2套算法&#xff0c;再次进行了改进后&#xff0c;咱们从今天开始测试第3套算法。第3套算法加入了012路的权重。废话不多说了&#xff0c;直接上结果吧~ 最终&#xff0c;经…

数据驱动校园管理:山海鲸可视化软件看板搭建记

随着信息化时代的到来&#xff0c;校园管理也逐渐向数字化、可视化转型。作为一名数据分析师&#xff0c;我有幸参与了使用山海鲸可视化软件搭建校园管理可视化看板的项目&#xff0c;山海鲸可视化软件是近些年新崛起的一款可视化产品&#xff0c;支持免费可视化编辑、私有化部…

网络学习:IPV6地址详解

目录 前言&#xff1a; 一、IPV6的由来 二、什么是IPV6地址&#xff1f; IPV6地址结构&#xff1a; 前言&#xff1a; IPV6&#xff08;Internet Protocol Version 6&#xff09;是网络层协议的第二代标准协议&#xff0c;也被称为IPng&#xff08;IP Next Generation&…

SolidWorks教育版 科研版 商业版区别

SolidWorks是一款功能强大的三维CAD软件&#xff0c;广泛应用于机械设计、工业设计、建筑设计等领域。SolidWorks提供了多个版本&#xff0c;以满足不同用户的需求。本文将详细介绍SolidWorks教育版、科研版与商业版的区别&#xff0c;帮助你更好地选择适合自己的版本。 首先&…

sentinel熔断降级

熔断降级 Slot 责任链上的最后一环&#xff1a;熔断降级 DegradeSlot,熔断降级作为保护系统的一种强大手段,可以根据慢调用、异常比例和异常数进行熔断,并自定义持续时间以实现系统保护 规则配置 规则类中属性解析 与控制面板对应 // 其中资源名称在 AbstractRule 里。 pu…

计算机一级word 文字处理理论+实操试题

计算机一级word 文字处理理论实操试题 单选题&#xff1a; 1、在Word编辑状态下&#xff0c;要将另一文档的内容全部添加在当前文档的当前光标处&#xff0c;应选择的操作是依次单击______。 A.“文件”选项卡和“打开”项 B.“文件”选项卡和“新建”项 C.“插入”选项卡…

windows server 下的mysql 8.0.28修改数据库目录

1. 查看当前数据库存储位置 show global variables like %datadir%; 默认是&#xff1a;C:\ProgramData\MySQL\MySQL Server 8.0\Data 2. 修改 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini配置文件。如下&#xff1a; datadirD:/ProgramData/MySQL/MySQL Server 8.0/Dat…

【HyperLips:】数字人——控制嘴唇 项目源码python实现

最近受到商汤“复活”汤晓鸥的视频刺激&#xff0c;大大的amazing&#xff01;没看过的小伙伴可以自行百度&#xff0c;看了不研究一下【数字人】技术&#xff0c;都要跟时代脱轨了&#xff0c;那就以HyperLips为开篇吧。 目录 &#x1f34e;&#x1f34e;1.摘要 &#x1f3…

OgGame——游戏全球发行的全套解决方案

在现今瞬息万变的游戏行业&#xff0c;成功发行一款游戏面临着各方面的难题&#xff0c;例如市场、版号、本土化等等。OgGame以其全球游戏发行的全套解决方案&#xff0c;成为开发者们的首选&#xff0c;为其提供了稳定而全面的支持。 为什么需要游戏全球发行解决方案&#xff…

专访沈劭劼:7千元干出城市NOA,大疆车载如何在「西瓜上雕树林」?

作者 |张祥威 编辑 |德新 在中国乃至全球智驾的供应商中&#xff0c;大疆车载是一家需要被重视的公司&#xff0c;这家公司在「极致性价比」的方向上进展极快。 去年&#xff0c;大疆发布了基于TITDA4 VH的量产方案&#xff0c;在五菱宝骏云朵等车型上进行了量产。一年后&…

C#,数值计算,数据测试用的对称正定矩阵(Symmetric Positive Definite Matrix)的随机生成算法与源代码

C.Hermite 1、对称矩阵 对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。1855年,埃米特(C.Hermite,1822-1901年)证明了别的数学家发现的一些矩阵类的特征根的特殊性质,如称为埃…

Spark杂谈

文章目录 什么是Spark对比HadoopSpark应用场景Spark数据处理流程什么是RDDSpark架构相关进程入门案例&#xff1a;统计单词数量Spark开启historyServer 什么是Spark Spark是一个用于大规模数据处理的统一计算引擎Spark一个重要的特性就是基于内存计算&#xff0c;从而它的速度…

Jmeter-实战案例(随机上传文件,接口依赖调用)

前置知识 1 两个接口 1-1 readData需要上传文件 参数 // formData类型 sdbh:"" file: "上传一个压缩包"响应 {"code": 1000,"status": "success","message": "操作成功","data":{"n…

es索引操作命令

索引操作 index 创建索引 put 方法创建索引 使用 put 创建索引时必须指明文档id&#xff0c;否则报错 # PUT 创建命令 # test1 索引名称 # type1 类型名称&#xff0c;默认为_doc&#xff0c;已经被废弃 # 1 文档id PUT /test1/type1/1 {"name":"zhangsan&…