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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。