Python | Método PyTorch tanh()
PyTorch é uma biblioteca de machine learning de código aberto desenvolvida pelo Facebook. É usado para redes neurais profundas e propósitos de processamento de linguagem natural.
Uma das muitas funções de ativação é a função tangente hiperbólica (também conhecida como tanh), que é definida como .
A função tangente hiperbólica tem saída na faixa (-1, 1), mapeando assim entradas fortemente negativas para valores negativos. Ao contrário da função sigmóide, apenas valores próximos de zero são mapeados para saídas quase zero, e isso resolve o problema dos “gradientes de desaparecimento” até certo ponto. A função tangente hiperbólica é diferenciável em todos os pontos e sua derivada acaba sendo . Como a expressão envolve a função tanh, seu valor pode ser reutilizado para tornar a propagação para trás mais rápida.
Apesar das menores chances de a rede “travar” quando comparada com a função sigmóide, a função tangente hiperbólica ainda sofre de “gradientes de desaparecimento”. A Unidade Linear Retificada (ReLU) pode ser usada para superar esse problema.
A função torch.tanh()
fornece suporte para a função tangente hiperbólica no PyTorch. Ele espera a entrada na forma de radianos e a saída esteja no intervalo [-∞, ∞]. O tipo de entrada é tensor e se a entrada contiver mais de um elemento, a tangente hiperbólica a elemento é calculada.
Sintaxe : torch.tanh (x, out = None)
Parâmetros :
x :
Nome do tensor de entrada (opcional): Tensor de saídaTipo de retorno : um tensor com o mesmo tipo de x.
Código # 1:
import
torch
a
=
torch.FloatTensor([
1.0
,
-
0.5
,
3.4
,
-
2.1
,
0.0
,
-
6.5
])
(a)
b
=
torch.tanh(a)
(b)
Resultado:
1,0000 -0,5000 3,4000 -2,1000 0,0000 -6,5000 [tocha.Tensor de flutuação de tamanho 6] 0,7616 -0,4621 0,9978 -0,9705 0,0000 -1,0000 [tocha.Tensor de flutuação de tamanho 6]
Código 2: Visualização
import
torch
import
numpy as np
import
matplotlib.pyplot as plt
a
=
np.linspace(
-
5
,
5
,
15
)
b
=
torch.tanh(torch.FloatTensor(a))
(b)
plt.plot(a, b.numpy(), color
=
'red'
, marker
=
"o"
)
plt.title(
"torch.tanh"
)
plt.xlabel(
"X"
)
plt.ylabel(
"Y"
)
plt.show()
Resultado:
-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 [tocha.Tensor de flutuação de tamanho 15]
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva