Últimamente hay un gran revuelo por la inteligencia artificial y redes neuronales, Pytorch es una librería de Python que permite hacer cálculos numéricos haciendo uso de la programación de tensores. No solo esto, sino que permite utilizar la GPU para acelerar aún más los cálculos.
Pytorch está ganando mucho terreno en esta área, porque es muy sencillo de utilizar, además a pesar de ser una librería reciente, hay mucha documentación con ejemplos para usarla. Otra curiosidad a tener en cuenta, es que posee una comunidad que esta creciendo muchísimo, en donde cada vez más programadores comparten sus códigos y experiencias. Por último, cabe destacar que es la librería principal que utiliza Facebook para aplicaciones de Deep Learning.
Pytorch se basa en el uso de tensores, que pueden ser equipados con vectores de una o muchas dimensiones.
Para entender un poco mejor el concepto de red neuronal, podemos decir que es un sistema de nodos interconectados de forma ordenado, distribuido por capas. A través de estas capas es posible captar una señal de entrada y emitir una salida. Se conoce como red neuronal, ya que es básicamente una emulación a la red biológica del reino animal. Estas capas pueden ser “entrenadas” para que aprendan.
Primeros pasos con Pytorch
Para instalar Pytorch, entramos a su web oficial: https://pytorch.org y en la parte de Quick Start, veremos algo como lo siguiente:
Automáticamente identifica nuestro sistema operativo, packages, versión de Python, y CUDA es por si disponemos de alguna tarjeta gráfica. En mi caso detectó la versión 9.0. En caso de no tener, simplemente seleccionamos NONE.
Por último, nos genera el comando que debemos correr desde nuestra consola, en mi caso:
pip3 install https://download.pytorch.org/whl/cu90/torch-1.1.0-cp37-cp37m-win_amd64.whl pip3 install https://download.pytorch.org/whl/cu90/torchvision-0.3.0-cp37-cp37m-win_amd64.whl
Una vez instalado, podemos importarlo en nuestro proyecto de la siguiente manera
Import torch
Con esto ya podemos comenzar a utilizar esta potente librería. A continuación, veremos como verificar si tenemos disponible CUDA para procesar datos utilizando la GPU, lo que logrará que las ejecuciones sean más veloces.
En una consola, importamos torch y luego tipeamos: torch.cuda.is_available()
En caso de estar disponible, nos responderá con un True.
Ahora veamos un ejemplo de como cargarle datos a un tensor, y luego como sumar tensores utilizando la GPU.
Comenzaremos creando un tensor de la siguiente forma: import torch
1 2 3 | import torch x = torch.Tensor(5,4) print (x) |
Al correr el script, tendremos un resultado como este:
Ahora crearemos 2 tensores y los sumaremos.
1 2 3 4 5 | import torch x = torch.Tensor(5,4) y = torch.Tensor(5,4) z = x+y print (z) |
Finalmente haremos esta misma suma, pero utilizando la GPU, para ello colocamos lo siguiente:
1 2 3 4 5 6 7 | import torch x = torch.Tensor(5,4) y = torch.Tensor(5,4) x = x.cuda() y = y.cuda() z = x+y print (z) |
Básicamente lo que hacemos es pasar nuestras variables que estaban en la CPU a la GPU y luego podemos sumarla con normalidad.
Se puede hacer una infinidad de cosas interesantes con esta potente librería de Python, la limitación la pone la imaginación de cada uno.