Python | Tensorflow nn.sigmoid()

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 sigmoidea que se define como  f(x) = 1 / (1 + e^{-x})  .
Las salidas de la función sigmoidea están en el rango (0, 1), lo que la hace ideal para problemas de clasificación binaria donde necesitamos encontrar la probabilidad de que los datos pertenezcan a una clase en particular. La función sigmoidea es diferenciable en todos los puntos y su derivada resulta ser  f'(x) = f(x) * (1 - f(x))  . Dado que la expresión involucra la función sigmoidea, su valor se puede reutilizar para hacer que la propagación hacia atrás sea más rápida.
La función sigmoidea sufre el problema de los «gradientes que se desvanecen», ya que se aplana en ambos extremos, lo que da como resultado cambios muy pequeños en los pesos durante la retropropagación. Esto puede hacer que la red neuronal se niegue a aprender y se atasque. Por esta razón, el uso de la función sigmoidea está siendo reemplazado por otras funciones no lineales como la Unidad lineal rectificada (ReLU).
La función tf.nn.sigmoid() [alias tf.sigmoid] brinda soporte para la función sigmoid en Tensorflow.
 

Sintaxis : tf.nn.sigmoid(x, nombre=Ninguno) o tf.sigmoid(x, nombre=Ninguno)
Parámetros
x : un tensor de cualquiera de los siguientes tipos: float16, float32, float64, complex64 o complex128. 
nombre (opcional): el nombre de la operación.
Tipo de retorno : Un tensor con el 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 sigmoid function and
# storing the result in 'b'
b = tf.nn.sigmoid(a, name ='sigmoid')
 
# 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_1:0", shape=(6, ), dtype=float32)
Input: [ 1.        -0.5        3.4000001 -2.0999999  0.        -6.5      ]
Return type: Tensor("sigmoid:0", shape=(6, ), dtype=float32)
Output: [ 0.7310586   0.37754068  0.96770459  0.10909683  0.5         0.00150118]

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 sigmoid function and
# storing the result in 'b'
b = tf.nn.sigmoid(a, name ='sigmoid')
 
# 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.sigmoid")
    plt.xlabel("X")
    plt.ylabel("Y")
 
    plt.show()

Producción: 
 

Input: 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.00669285  0.01357692  0.02734679  0.05431327  0.10500059  0.19332137
  0.32865255  0.5         0.67134745  0.80667863  0.89499941  0.94568673
  0.97265321  0.98642308  0.99330715]

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 *