Teano en Python

Theano es una biblioteca de Python que nos permite evaluar operaciones matemáticas que incluyen arrays multidimensionales de manera tan eficiente. Se utiliza principalmente en la construcción de proyectos de aprendizaje profundo. Funciona mucho más rápido en la Unidad de procesamiento de gráficos (GPU) que en la CPU. Theano alcanza altas velocidades que le dan una dura competencia a las implementaciones de C para problemas que involucran grandes cantidades de datos. Puede aprovechar las GPU, lo que hace que funcione mejor que C en una CPU en órdenes de magnitud considerables en determinadas circunstancias. 
Sabe cómo tomar estructuras y convertirlas en un código muy eficiente que usa numpy y algunas bibliotecas nativas. Está diseñado principalmente para manejar los tipos de cómputo necesarios para los grandes algoritmos de redes neuronales utilizados en Deep Learning. Por eso, es una biblioteca muy popular en el campo del aprendizaje profundo.

Cómo instalar Teano:

pip install theano

Varios de los símbolos que necesitaremos usar están en el subpaquete tensorial de Theano. A menudo importamos dichos paquetes con un nombre práctico, digamos, T.  

from theano import *
import theano.tensor as T

Por qué Theano Python Library: 
Theano es una especie de híbrido entre numpy y sympy, se intenta combinar los dos en una poderosa biblioteca. Algunas ventajas de theano son las siguientes:  

  • Optimización de la estabilidad: Theano puede descubrir algunas expresiones inestables y puede usar medios más estables para evaluarlas.
  • Optimización de la velocidad de ejecución: como se mencionó anteriormente, theano puede utilizar GPU recientes y ejecutar partes de expresiones en su CPU o GPU, lo que lo hace mucho más rápido que Python.
  • Diferenciación simbólica: Theano es lo suficientemente inteligente como para crear automáticamente gráficos simbólicos para calcular gradientes.

Conceptos básicos de Theano: 
Theano es una biblioteca de Python que le permite definir, optimizar y evaluar expresiones matemáticas que involucran arrays multidimensionales de manera eficiente. Algunas implementaciones de Theano son las siguientes.

Restar dos escalares:  

Python

# Python program showing
# subtraction of two scalars
 
import theano
from theano import tensor
 
# Declaring variables
a = tensor.dscalar()
b = tensor.dscalar()
 
# Subtracting
res = a - b
# Converting it to a callable object
# so that it takes matrix as parameters
func = theano.function([a, b], res)
 
# Calling function
assert 20.0 == func(30.5, 10.5)

No proporcionará ningún resultado ya que la afirmación de dos números coincide con el número dado, por lo tanto, da como resultado un valor verdadero.

Sumando dos escalares: 

Python

# Python program showing
# addition of two scalars
 
# Addition of two scalars
import numpy
import theano.tensor as T
from theano import function
 
# Declaring two variables
x = T.dscalar('x')
y = T.dscalar('y')
 
# Summing up the two numbers
z = x + y
 
# Converting it to a callable object
# so that it takes matrix as parameters
f = function([x, y], z)
f(5, 7)

Producción: 

array(12.0)

Sumando dos arrays:  

Python

# Python program showing
# addition of two matrices
 
# Adding two matrices
import numpy
import theano.tensor as T
from theano import function
x = T.dmatrix('x')
y = T.dmatrix('y')
z = x + y
f = function([x, y], z)
 
f([[30, 50], [2, 3]], [[60, 70], [3, 4]])

Producción:

array([[ 90.,  120.],
       [ 5.,  7.]])

Función logística usando theano : 
Intentemos calcular la curva logística, que viene dada por: 
 

Función logística:  

Python

# Python program to illustrate logistic
# sigmoid function using theano
# Load theano library
 
import theano
from theano import tensor
 
# Declaring variable
a = tensor.dmatrix('a')
 
# Sigmoid function
sig = 1 / (1 + tensor.exp(-a))
 
# Now it takes matrix as parameters
log = theano.function([a], sig)
 
# Calling function
print(log([[0, 1], [-1, -2]]))

Producción : 

[[0.5           0.73105858
0.26894142      0.11920292]]

Theano es una biblioteca de base que se utiliza principalmente para la investigación y el desarrollo de aprendizaje profundo y directamente para crear modelos de aprendizaje profundo o por bibliotecas convenientes como Keras. Admite redes convolucionales y redes recurrentes, así como combinaciones de las dos.
 

Publicación traducida automáticamente

Artículo escrito por aishwarya.27 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 *