Pytorch(四) 几种简单激励函数的绘制
绘制激励函数
- relu
- sigmoid
- tanh
- softplus
1.导入模块
import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
2.假定数据
这里我们对原来的线性数据x进行激活函数的运算
假设它是属于-5到5之间的数据,我们通过linspace将它分为200份
# fake data
x = torch.linspace(-5, 5, 200)
x_np = x.data.numpy()
3.通过不同的激活函数得到的结果
softmax 也是种常用的激活函数,但是它计算的是概率,所以无法用线图来展示效果,之后将介绍的图像分类中就用到了它
y_relu = torch.relu(x).data.numpy()
y_sigmoid = torch.sigmoid(x).data.numpy()
y_tanh = torch.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy()
# softmax 计算概率,无法用线图呈现
4.图像绘制
plt.figure
设置宽高plt.subplot(221)
绘制时 分成 2*2 四份 这里绘制第一份(左上角)
plt.figure(1, figsize=(8, 6))
plt.subplot(221)
plt.plot(x_np, y_relu, c='red', label='relu')
plt.ylim(-1, 5)
plt.legend(loc='best')
plt.subplot(222)
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
plt.ylim(-0.2, 1.2)
plt.legend(loc='best')
plt.subplot(223)
plt.plot(x_np, y_tanh, c='red', label='tanh')
plt.ylim(-1.2, 1.2)
plt.legend(loc='best')
plt.subplot(224)
plt.plot(x_np, y_softplus, c='red', label='softplus')
plt.ylim(-0.2, 6)
plt.legend(loc='best')
plt.show()
5.结果展示
全代码
import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
# fake data
x = torch.linspace(-5, 5, 200)
x_np = x.data.numpy()
y_relu = torch.relu(x).data.numpy()
y_sigmoid = torch.sigmoid(x).data.numpy()
y_tanh = torch.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy()
# softmax 计算概率,无法用线图呈现
plt.figure(1, figsize=(8, 6))
plt.subplot(221)
plt.plot(x_np, y_relu, c='red', label='relu')
plt.ylim(-1, 5)
plt.legend(loc='best')
plt.subplot(222)
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
plt.ylim(-0.2, 1.2)
plt.legend(loc='best')
plt.subplot(223)
plt.plot(x_np, y_tanh, c='red', label='tanh')
plt.ylim(-1.2, 1.2)
plt.legend(loc='best')
plt.subplot(224)
plt.plot(x_np, y_softplus, c='red', label='softplus')
plt.ylim(-0.2, 6)
plt.legend(loc='best')
plt.show()