为了更清晰地学习Pytorch中的激活函数,并对比它们之间的不同,这里对最新版本的Pytorch中的激活函数进行了汇总,主要介绍激活函数的公式、图像以及使用方法,具体细节可查看官方文档。
目录
1、ELU
2、Hardshrink
3、Hardsigmoid
4、Hardtanh
5、Hardswish
6、LeakyReLU
7、LogSigmoid
8、PReLU
9、ReLU
10、ReLU6
11、RReLU
12、SELU
13、CELU
14、GELU
15、Sigmoid
16、SiLU
17、Mish
18、Softplus
19、Softshrink
20、Softsign
21、Tanh
22、Tanhshrink
23、Threshold
24、GLU
25、Softmin
26、Softmax
27、LogSoftmax
28、其它
1、ELU
公式:
图像:
示例:
m = nn.ELU()
input = torch.randn(2)
output = m(input)
2、Hardshrink
公式:
图像:
示例:
m = nn.Hardshrink()
input = torch.randn(2)
output = m(input)
3、Hardsigmoid
公式:
图像:
示例:
m = nn.Hardsigmoid()
input = torch.randn(2)
output = m(input)
4、Hardtanh
公式:
图像:
示例:
m = nn.Hardtanh(-2, 2)
input = torch.randn(2)
output = m(input)
5、Hardswish
公式:
图像:
示例:
m = nn.Hardwish()
input = torch.randn(2)
output = m(input)
6、LeakyReLU
公式:
图像:
示例:
m = nn.LeakyReLU(0.1)
input = torch.randn(2)
output = m(input)
7、LogSigmoid
公式:
图像:
示例;
m = nn.LogSigmoid()
input = torch.randn(2)
output = m(input)
8、PReLU
公式:
其中,a是可学习的参数。
图像:
示例:
m = nn.PReLU()
input = torch.randn(2)
output = m(input)
9、ReLU
公式:
图像:
示例:
m = nn.ReLU()
input = torch.randn(2)
output = m(input)
10、ReLU6
公式:
图像:
示例:
m = nn.ReLU6()
input = torch.randn(2)
output = m(input)
11、RReLU
公式:
其中,a从均匀分布U(lower,upper)随机采样得到。
图像:
示例:
m = nn.RReLU(0.1, 0.3)
input = torch.randn(2)
output = m(input)
12、SELU
公式:
其中,a=1.6732632423543772848170429916717,scale=1.0507009873554804934193349852946。
图像:
示例:
m = nn.SELU()
input = torch.randn(2)
output = m(input)
13、CELU
公式:
图像:
示例:
m = nn.CELU()
input = torch.randn(2)
output = m(input)
14、GELU
公式:
图像:
示例:
m = nn.GELU()
input = torch.randn(2)
output = m(input)
15、Sigmoid
公式:
图像:
示例:
m = nn. Sigmoid()
input = torch.randn(2)
output = m(input)
16、SiLU
公式:
图像:
示例:
m = nn.SiLU()
input = torch.randn(2)
output = m(input)
17、Mish
公式:
图像:
示例:
m = nn.Mish()
input = torch.randn(2)
output = m(input)
18、Softplus
公式:
对于数值稳定性,当时,恢复到线性函数。
图像:
示例:
m = nn.Softplus()
input = torch.randn(2)
output = m(input)
19、Softshrink
公式:
图像:
示例:
m = nn.Softshrink()
input = torch.randn(2)
output = m(input)
20、Softsign
公式:
图像:
示例:
m = nn.Softsign()
input = torch.randn(2)
output = m(input)
21、Tanh
公式:
图像:
示例:
m = nn.Tanh()
input = torch.randn(2)
output = m(input)
22、Tanhshrink
公式:
图像:
示例:
m = nn.Tanhshrink()
input = torch.randn(2)
output = m(input)
23、Threshold
公式:
示例:
m = nn.Threshold(0.1, 20)
input = torch.randn(2)
output = m(input)
24、GLU
公式:
其中,a是输入矩阵的前半部分,b是后半部分。
示例:
m = nn.GLU()
input = torch.randn(4, 2)
output = m(input)
25、Softmin
公式:
示例:
m = nn.Softmin(dim=1)
input = torch.randn(2, 3)
output = m(input)
26、Softmax
公式:
示例:
m = nn.Softmax(dim=1)
input = torch.randn(2, 3)
output = m(input)
27、LogSoftmax
公式:
示例:
m = nn.LogSoftmiax(dim=1)
input = torch.randn(2, 3)
output = m(input)
28、其它
还有MultiheadAttention、Softmax2d、AdaptiveLogSoftmaxWithLoss相对复杂一些没有添加,可去官网文档查看。