神經網路只是由兩個或多個線性網路層疊加,並不能學到新的東西,簡單地堆疊網路層,不經過非線性啟用函式啟用,學到的仍然是線性關係。dpirnpv
但是加入啟用函式可以學到非線性的關係,就具有更強的能力去進行特徵提取。
構造資料
import torch
import torch.nn.functional as f
from torch.autograd import variable
import matplotldpirnpvib.pyplot as plt
x = torch.linspace(-5, 5, 200) # 構造一段連續的資料
x = variable(x) # 轉換成張量
x_np = x.data.numpy() # 換成 程式設計客棧numpy array, 出圖時用
relu
表示式:
**:y_relu = f.relu(x).data.numpy()
plt.plot(x_www.cppcns.comnp, y_relu, c='red', label='relu')
plt.ylim((-1, 5))
plt.legend(loc='best')
plt.show()
形狀如圖:
sigmoid
表示式:
**:y_sigmoid = f.sigmoid(x).data.dpirnpvnumpy()
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
plt.ylim((-0.2, 1.2))
plt.legend(loc='best')
plt.show()
形狀如圖:
tanh
表示式:
**:y_tanh = f.tanh(x).data.numpy()
plt.plot(x_np, y_tanh, c='red', label='tanh')
plt.ylim((-1.2, 1.2))
plt.legend(loc='best')
plt.show()
形狀如圖:
softplus
表示式:
**:y_softplus = f.softplus(x).data.numpy()
plt.plot(x_np, y_softplus, c='red', label='softplus')
plt.ylim((-0.2, 6))
plt.legend(loc='best')
plt.show()
形狀如圖:
本文標題: pytorch中常用的啟用函式的方法示例
本文位址:
深度學習中常用的啟用函式
我們知道深度學習的理論基礎是神經網路,在單層神經網路中 感知機 輸入和輸出計算關係如下圖所示 可見,輸入與輸出是乙個線性關係,對於增加了多個神經元之後,計算公式也是類似,如下圖 這樣的模型就只能處理一些簡單的線性資料,而對於非線性資料則很難有效地處理 也可通過組合多個不同線性表示,但這樣更加複雜和不...
Pytorch中的啟用函式
介紹神經網路的時候已經說到,神經元會對化學物質的刺激進行,當達到一定程度的時候,神經元才會興奮,並向其他神經元傳送資訊。神經網路中的啟用函式就是用來判斷我們所計算的資訊是否達到了往後面傳輸的條件。因為如果使用線性的啟用函式,那麼input跟output之間的關係始終為線性的,這樣完全可以不使用網路結...
神經網路中常用的啟用函式
1.非線性 當啟用函式是線性的時候,乙個兩層的神經網路就可以逼近基本上所有的函式了。但是,如果啟用函式是恒等啟用函式的時候 即f x x 就不滿足這個性質了,而且如果mlp使用的是恒等啟用函式,那麼其實整個網路跟單層神經網路是等價的。2.可微性 當優化方法是基於梯度的時候,這個性質是必須的。3.單調...