欢迎访问宙启技术站
智能推送

PyTorch中的leaky_relu()函数及其参数解析

发布时间:2023-12-24 04:42:42

在PyTorch中,leaky_relu()函数是一个用于激活函数的函数。该函数采用的是“leaky rectified linear unit”(Leaky ReLU)的激活函数。

Leaky ReLU是一个修正线性单元(ReLU)的变种,它解决了ReLU函数的一个问题:当输入小于等于零时,ReLU函数的梯度为零,导致神经元无法更新。相比之下,Leaky ReLU函数在输入小于零时将具有较小的斜率,这使得神经元可以在负输入情况下仍然具有更新的能力。

在PyTorch中,leaky_relu()函数的语法如下:

torch.nn.functional.leaky_relu(input, negative_slope=0.01, inplace=False)

leaky_relu()函数的参数解析如下:

- input: 输入张量。

- negative_slope: 斜率负值,即当输入小于零时,斜率的大小。默认值为0.01。

- inplace: 是否进行原地操作。如果设置为True,则会改变输入张量本身,否则会返回一个新的张量。默认值为False。

下面是一个使用例子,展示了如何使用leaky_relu()函数:

import torch
import torch.nn.functional as F

# 创建一个输入张量
input = torch.tensor([-1.0, 2.0, -3.0, 4.0, 0.0])

# 使用leaky_relu()函数应用Leaky ReLU激活函数
output = F.leaky_relu(input, negative_slope=0.1)

print(output)

输出结果为:

tensor([-0.1000,  2.0000, -0.3000,  4.0000,  0.0000])

在这个例子中,我们首先创建了一个输入张量input,它包含了一些正数和负数。然后,我们使用leaky_relu()函数将Leaky ReLU激活函数应用于输入张量,设置negative_slope=0.1。最后,我们打印出输出张量output的结果。

可以看到,当输入小于0时,输出张量中相应的元素会乘以负斜率0.1,而当输入大于等于0时,输出张量中相应的元素保持不变。这就是Leaky ReLU的作用。