PyTorch是由Facebook開發的開源機器學習庫。它用於深度神經網絡和自然語言處理。
許多激活函數之一是雙曲正切函數(也稱為tanh),其定義為。
雙曲正切函數的輸出範圍為(-1,1),因此將強負輸入映射為負值。與sigmoid函數不同,僅將接近零的值映射到接近零的輸出,這在某種程度上解決了“vanishing gradients”問題。雙曲正切函數在每個點都是微分的,其導數為。由於表達式包含tanh函數,因此可以重用其值以使向後傳播更快。
盡管與S形函數相比,網絡獲得“stuck”的機會較低,但是雙曲正切函數仍然受到“vanishing gradients”的影響。整流線性單元(ReLU)可用於克服此問題。
函數torch.tanh()
為PyTorch中的雙曲正切函數提供支持。它期望輸入為弧度形式,並且輸出在[-∞,∞]範圍內。輸入類型為張量,如果輸入包含多個元素,則將計算按元素的雙曲正切值。
用法:torch.tanh(x, out=None)
參數:
x:輸入張量
name(可選):輸出張量
返回類型:與x具有相同類型的張量。
代碼1:
# Importing the PyTorch library
import torch
# A constant tensor of size 6
a = torch.FloatTensor([1.0, -0.5, 3.4, -2.1, 0.0, -6.5])
print(a)
# Applying the tanh function and
# storing the result in 'b'
b = torch.tanh(a)
print(b)
輸出:
1.0000 -0.5000 3.4000 -2.1000 0.0000 -6.5000 [torch.FloatTensor of size 6] 0.7616 -0.4621 0.9978 -0.9705 0.0000 -1.0000 [torch.FloatTensor of size 6]
代碼2:可視化
# Importing the PyTorch library
import torch
# Importing the NumPy library
import numpy as np
# Importing the matplotlib.pylot function
import matplotlib.pyplot as plt
# A vector of size 15 with values from -5 to 5
a = np.linspace(-5, 5, 15)
# Applying the hyperbolic tangent function and
# storing the result in 'b'
b = torch.tanh(torch.FloatTensor(a))
print(b)
# Plotting
plt.plot(a, b.numpy(), color = 'red', marker = "o")
plt.title("torch.tanh")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
輸出:
-0.9999 -0.9996 -0.9984 -0.9934 -0.9728 -0.8914 -0.6134 0.0000 0.6134 0.8914 0.9728 0.9934 0.9984 0.9996 0.9999 [torch.FloatTensor of size 15]
相關用法
- Python PyTorch cos()用法及代碼示例
- Python PyTorch tan()用法及代碼示例
- Python PyTorch sin()用法及代碼示例
- Python PyTorch sinh()用法及代碼示例
- Python PyTorch asin()用法及代碼示例
- Python PyTorch acos()用法及代碼示例
- Python PyTorch atan()用法及代碼示例
- Python PyTorch cosh()用法及代碼示例
- Python numpy.tanh()用法及代碼示例
- Python Tensorflow nn.tanh()用法及代碼示例
注:本文由純淨天空篩選整理自vaibhav29498大神的英文原創作品 Python | PyTorch tanh() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。