当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch tanh()用法及代码示例


PyTorch是由Facebook开发的开源机器学习库。它用于深度神经网络和自然语言处理。

许多激活函数之一是双曲正切函数(也称为tanh),其定义为tanh(x) = (e^x - e^{-x}) / (e^x + e^{-x})

双曲正切函数的输出范围为(-1,1),因此将强负输入映射为负值。与sigmoid函数不同,仅将接近零的值映射到接近零的输出,这在某种程度上解决了“vanishing gradients”问题。双曲正切函数在每个点都是微分的,其导数为1 - tanh^2(x)。由于表达式包含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]



相关用法


注:本文由纯净天空筛选整理自vaibhav29498大神的英文原创作品 Python | PyTorch tanh() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。