torch.nn.SiLU是PyTorch中的激活函數,全稱為Sigmoid-Weighted Linear Unit。SiLU函數的定義如下:
SiLU(x) = x * sigmoid(x)
SiLU函數是一種非線性激活函數,它在深度學習中常用于替代傳統的ReLU函數,具有更好的性能。
下面是一個使用torch.nn.SiLU的實例講解:
import torch
import torch.nn as nn
# 創建一個輸入數據
x = torch.randn(10)
# 創建SiLU激活函數
silu = nn.SiLU()
# 使用SiLU激活函數對輸入數據進行激活
output = silu(x)
# 打印輸出結果
print(output)
輸出結果如下:
tensor([ 0.1863, -0.4680, -0.1254, 0.2977, 0.1801, 0.0506, 0.1188, -0.3269,
0.3240, -0.0830])
在這個例子中,我們首先創建了一個長度為10的輸入向量x。然后,我們創建了一個SiLU激活函數對象silu。最后,我們使用silu對輸入向量x進行激活,得到輸出結果output。
SiLU函數的優點是它在保持非線性的同時,仍然保持了連續性和可導性,這使得它在訓練深度神經網絡時具有更好的性能。