PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数

PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数

功能:逐元素对数据应用如下函数公式进行激活
LeakyReLU ( x ) = max ⁡ ( 0 , x ) + α ∗ min ⁡ ( 0 , x ) \text{LeakyReLU}(x)=\max(0,x)+\alpha*\min(0,x) LeakyReLU(x)=max(0,x)+αmin(0,x)
或者
LeakyReLU ( x ) = { x , i f x ≥ 0 α × x , otherwise \begin{aligned} \text{LeakyReLU}(x)= \left\{ \begin{matrix} x,\quad &if\quad x≥0 \\ \alpha\times x,\quad &\text{otherwise} \end{matrix} \right. \end{aligned} LeakyReLU(x)={x,α×x,ifx0otherwise
该函数相比于ReLU,保留了一些负轴的值,缓解了激活值过小而导致神经元参数无法更新的问题,其中 α \alpha α默认0.01。

函数图像:

在这里插入图片描述

输入:

  • negative_slope:控制负激活值的斜率,默认1e-2
  • inplace:是否改变输入数据,如果设置为True,则会直接修改输入数据;如果设置为False,则不对输入数据做修改

注意:

  • 输出数据与输入数据尺寸相同

代码案例

与ReLU做比较

import torch.nn as nn
import torch

LeakyReLU = nn.LeakyReLU(negative_slope=5e-2)
ReLU = nn.ReLU()
x = torch.randn(10)
value = ReLU(x)
value_l = LeakyReLU(x)
print(x)
print(value)
print(value_l)

输出

# 输入
tensor([ 0.1820, -0.4248, -0.9135,  0.1136, -1.0147, -0.5044,  0.1361,  0.0744,
         1.3379, -1.1290])
# ReLU
tensor([0.1820, 0.0000, 0.0000, 0.1136, 0.0000, 0.0000, 0.1361, 0.0744, 1.3379,
        0.0000])
# LeakyReLU
tensor([ 0.1820, -0.0212, -0.0457,  0.1136, -0.0507, -0.0252,  0.1361,  0.0744,
         1.3379, -0.0564])

注:绘图程序

import torch.nn as nn
import torch
import numpy as np
import matplotlib.pyplot as plt

LeakyReLU = nn.LeakyReLU(negative_slope=5e-2)
x = torch.from_numpy(np.linspace(-3,3,100))
value = LeakyReLU(x)
plt.plot(x, value)
plt.savefig('LeakyReLU.jpg')

官方文档

nn.LeakyReLU:https://pytorch.org/docs/stable/generated/torch.nn.LeakyReLU.html#torch.nn.LeakyReLU

初步完稿于:2022年2月16日

  • 20
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Leaky ReLUPyTorch中的一个激活函数,它在神经网络中常被用于解决ReLU函数存在的一些问题。Leaky ReLU与ReLU函数非常相似,但是当输入小于0时,Leaky ReLU会有一个非零的斜率(即负的斜率),而不是完全变为0。这个负的斜率可以通过`negative_slope`参数进行调节。 下面是一个与ReLU函数进行比较的例子代码: ```python import torch.nn as nn import torch LeakyReLU = nn.LeakyReLU(negative_slope=5e-2) ReLU = nn.ReLU() x = torch.randn(10) value = ReLU(x) value_l = LeakyReLU(x) print(x) print(value) print(value_l) ``` 在这个例子中,我们使用了PyTorchLeakyReLU和ReLU激活函数分别对输入数据进行处理,并打印出了结果。可以看到,当输入小于0时,Leaky ReLU函数的输出值会稍微大于0,而ReLU函数的输出值则为0。 此外,下面的代码展示了如何使用Leaky ReLU绘制激活函数的曲线: ```python import torch.nn as nn import torch import numpy as np import matplotlib.pyplot as plt LeakyReLU = nn.LeakyReLU(negative_slope=5e-2) x = torch.from_numpy(np.linspace(-3,3,100)) value = LeakyReLU(x) plt.plot(x, value) plt.savefig('LeakyReLU.jpg') ``` 这段代码生成了一个从-3到3的输入范围,并使用Leaky ReLU激活函数对每个输入值进行处理。然后,通过使用matplotlib库,我们将输入和输出值绘制成曲线,并保存为LeakyReLU.jpg文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [PyTorch学习笔记nn.LeakyReLU——LeakyReLU激活函数](https://blog.csdn.net/qq_50001789/article/details/128973901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉萌新、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值