常用的激活函数为S型(sigmoid)激活函数、双曲正切(Tanh)激活函数、线性修正单元(ReLU)激活函数等,对应Pytorch的函数如下所示
层对应的种类 | 功能 |
---|---|
torch.nn.Sigmoid | Sigmoid激活函数 |
torch.nn.Tanh | Tanh激活函数 |
torch.nn.ReLU | ReLU激活函数 |
torch.nn.Softplus | ReLU激活函数的平滑近似 |
Sigmoid激活函数对应公式如下所示:
Tanh激活函数对应公式如下所示:
ReLU激活函数对应公式如下所示:
ReLU激活函数的平滑近似函数对应公式如下所示
代码调用
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
x = torch.linspace(-6, 6, 100)
# Sigmoid激活函数
sigmoid = nn.Sigmoid()
ysigmoid = sigmoid(x)
# Tanh激活函数
tanh = nn.Tanh()
ytanh = tanh(x)
# Relu激活函数
relu = nn.ReLU()
yrelu = relu(x)
# Softplus激活函数
softplus = nn.Softplus()
ysoftplus = softplus(x)
plt.figure(figsize=(14, 3))
plt.subplot(1, 4, 1)
plt.plot(x.data.numpy(), ysigmoid.data.numpy(), "r-")
plt.title("Sigmoid")
plt.grid()
plt.subplot(1, 4, 2)
plt.plot(x.data.numpy(), ytanh.data.numpy(), "r-")
plt.title("Tanh")
plt.grid()
plt.subplot(1, 4, 3)
plt.plot(x.data.numpy(), yrelu.data.numpy(), "r-")
plt.title("ReLU")
plt.grid()
plt.subplot(1, 4, 4)
plt.plot(x.data.numpy(), ysoftplus.data.numpy(), "r-")
plt.title("Softplus")
plt.grid()
plt.show()
结果如下图: