Deep Learning con Pytorch

En este artículo hablaré un poco del concepto de Pytorch y su uso para aplicaciones en redes Neuronales y la creación de una regresión lineal.

Jonathan Quiza
Ciencia y Datos
4 min readJun 12, 2018

--

1

¿Qué es PyTorch?

Es una libreria basado en Python, diseñado para realizar cálculos numéricos haciendo uso de la programación de tensores. Además permite su ejecución en GPU para acelerar los cálculos.

¿Por qué usar PyTorch?

PyTorch dispone una interfaz muy sencilla para la creación de redes neuronales pese a trabajar de forma directa con tensores sin la necesidad de una librería a un nivel superior como pueda ser Keras para Theano o Tensorflow.

PyTorch dispone de soporte para su ejecución en tarjetas gráficas (GPU), utiliza internamente CUDA, una API que conecta la CPU con la GPU que ha sido desarrollado por NVIDIA.

¿Que se puede usar con PyTorch?

  • Matrices.
  • Álgebra lineal.
  • Creación de una red de feedforward.
  • Entre otras cosas y tu imaginacion.

Torch es uno de los frameworks de Deep Learning más populares en el mundo, dominando gran parte de la comunidad de investigación en los últimos años (solo recientemente rivalizado con los principales frameworks patrocinados por Google, Tensorflow y Keras ). Quizás su único inconveniente para los nuevos usuarios ha sido el hecho de que se requiere conocer Lua , un lenguaje que solía ser muy poco común en la comunidad de Machine Learning. Incluso hoy en día, esta barrera de entrada puede parecer un poco para muchas personas nuevas en el campo, que ya están en medio de una gran cantidad de aprendizaje, y mucho menos de un lenguaje de programación completamente nuevo.

¿Que es un Tensor?

Un Tensor es solo un término más genérico que matrix o vector . Los tensores de 1 dimensión son vectores.
Los tensores bidimensionales son matrices. 3+ tensores dimensionales se conocen como tensores. Si no está familiarizado con estos objetos, aquí hay un resumen rápido. Un vector es “una lista de números”. Una matriz es “una lista de listas de números”. Un tensor 3-d es “una lista de listas de listas de números”. Un tensor 4-d es … ¿observas este patrón? Para obtener más información sobre cómo se usan los vectores y las matrices aquí

Tensors PyTorch

Parece haber 4 tipos principales de tensores en PyTorch: tensores de Byte, Float, Double y Long. Cada tipo de tensor corresponde al tipo de número (y más importante, el tamaño / indicación del número) contenido en cada lugar de la matriz. Entonces, si un Tensor de 1-d es una “lista de números”, un Tensor de Flotación de 1-d es una lista de flotadores . Como regla general, para peso matries usamos FloatTensors. Para las matrices de datos, es probable que usemos FloatTensors (para entradas con valores reales) o Long Tensors (para enteros).

Ahora para no aburrir con solo lectura un ejemplo básico una regresión Lineal con la generación de datos manuales. para la próxima haremos ya con dataset de kaggle para resolver algunos problemas con modelos basado en Pytorch

Import Librerias

Hiper parametros

Dataset Manual con Array Numpy

Definiendo el modelo de regresión lineal

Pérdida y Optimizador

Entrenando el Modelo

Forward adelantado

Backward y optimizacion

Visualización con matplotlib

Guardar modelo

torch.save(model.state_dict(), ‘my_modelo.pkl’)

Cargar modelo existente

model.load_state_dict(torch.load(‘my_modelo.pkl))

Libro para leer

fuente(https://amzn.to/2Jn7XPu)

Espero le hayas gustado esta publicación sobre algunos conceptos básicos de redes convolucionales con Pytorch ya jugaremos en kaggle para hace predicciones o jugar con imágenes =)

linkedin:

Gracias.

--

--

Jonathan Quiza
Ciencia y Datos

Lead ML Engineer / Data science / Machine Learning / MLops