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()