Pytorch(四) 幾種簡單激勵函數的繪製

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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章