Python | Tensorflow nn.tanh()

Tensorflow es una biblioteca de aprendizaje automático de código abierto desarrollada por Google. Una de sus aplicaciones es desarrollar redes neuronales profundas. 

El módulo tensorflow.nn brinda soporte para muchas operaciones básicas de redes neuronales.

Una de las muchas funciones de activación es la función tangente hiperbólica (también conocida como tanh) que se define como  tanh(x) = (e^z - e^{-z}) / (e^z + e^{-z})  .
La función de tangente hiperbólica produce en el rango (-1, 1), asignando así entradas fuertemente negativas a valores negativos. A diferencia de la función sigmoidea, solo los valores cercanos a cero se asignan a salidas cercanas a cero, y esto resuelve el problema de los «gradientes que se desvanecen» hasta cierto punto. La función tangente hiperbólica es diferenciable en todos los puntos y su derivada resulta ser  1 - tanh^2(x)  . Dado que la expresión implica la función tanh, su valor se puede reutilizar para hacer que la propagación hacia atrás sea más rápida.

A pesar de las menores posibilidades de que la red se «atasque» en comparación con la función sigmoidea, la función tangente hiperbólica todavía sufre de «gradientes de fuga». La unidad lineal rectificada (ReLU) se puede utilizar para superar este problema.

La función tf.nn.tanh() [alias tf.tanh] brinda soporte para la función de tangente hiperbólica en Tensorflow. 

Sintaxis : tf.nn.tanh(x, nombre=Ninguno) o tf.tanh(x, nombre=Ninguno)
Parámetros:  
x : Un tensor de cualquiera de los siguientes tipos: float16, float32, double, complex64 o complex128. 
nombre (opcional): el nombre de la operación.
Retorno : Un tensor del mismo tipo que el de x. 
 

Código #1:  

Python3

# Importing the Tensorflow library
import tensorflow as tf
 
# A constant vector of size 6
a = tf.constant([1.0, -0.5, 3.4, -2.1, 0.0, -6.5], dtype = tf.float32)
 
# Applying the tanh function and
# storing the result in 'b'
b = tf.nn.tanh(a, name ='tanh')
 
# Initiating a Tensorflow session
with tf.Session() as sess:
    print('Input type:', a)
    print('Input:', sess.run(a))
    print('Return type:', b)
    print('Output:', sess.run(b))

Producción: 

Input type: Tensor("Const_2:0", shape=(6, ), dtype=float32)
Input: [ 1.        -0.5        3.4000001 -2.0999999  0.        -6.5      ]
Return type: Tensor("tanh_2:0", shape=(6, ), dtype=float32)
Output: [ 0.76159418 -0.46211717  0.9977749  -0.97045201  0.         -0.99999547]

Código #2: Visualización  

Python3

# Importing the Tensorflow library
import tensorflow as tf
 
# Importing the NumPy library
import numpy as np
 
# Importing the matplotlib.pyplot 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 tanh function and
# storing the result in 'b'
b = tf.nn.tanh(a, name ='tanh')
 
# Initiating a Tensorflow session
with tf.Session() as sess:
    print('Input:', a)
    print('Output:', sess.run(b))
    plt.plot(a, sess.run(b), color = 'red', marker = "o")
    plt.title("tensorflow.nn.tanh")
    plt.xlabel("X")
    plt.ylabel("Y")
 
    plt.show()

Producción: 

Input: [-5.         -4.28571429 -3.57142857 -2.85714286 -2.14285714 -1.42857143
 -0.71428571  0.          0.71428571  1.42857143  2.14285714  2.85714286
  3.57142857  4.28571429  5.        ]
Output: [-0.9999092  -0.99962119 -0.99842027 -0.99342468 -0.97284617 -0.89137347
 -0.61335726  0.          0.61335726  0.89137347  0.97284617  0.99342468
  0.99842027  0.99962119  0.9999092 ]

Publicación traducida automáticamente

Artículo escrito por vaibhav29498 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *