En los últimos años, los avances en procesadores gráficos (GPUs) y las nuevas arquitecturas y modelos de deep learning como los transformers han supuesto una revolución científica. La pregunta que surge es cómo trasladar estos avances en nuevos productos y un mayor impacto económico y social. Estos últimos meses hemos visto la revolución que ha... Seguir leyendo →
Deep learning y teoría de redes
Como hemos ido viendo en esta Web, el uso de GPUs y nuevos modelos de deep learning ha logrado grandes avances en visión artificial, procesamiento de lenguaje, juegos, etc. Para ello han sido clave modelos de redes neuronales multicapa, RNNs, CNNs y posteriormente transformers basados en el mecanismo de atención. Por otro lado, en la... Seguir leyendo →
Modelos discriminativos y generativos en deep learning
Una pregunta que siempre nos planteamos en machine learning y en deep learning es la diferencia entre algoritmos discriminativos y generativos y cuál escoger para un problema concreto. Los algoritmos discriminativos modelan la dependencia de una variable objetivo Y en función de una variable observada X. De esta forma se puede predecir la variable Y ... Seguir leyendo →
Curso Deep learning con PyTorch
Con el objetivo de divulgar el uso de PyTorch como herramienta de deep learning, hemos creado una serie de tutoriales para introducir PyTorch y sus principales módulos. A continuación se puede ver un listado con las partes del curso: Programación orientada a objetos en PyTorch.Tensores en PyTorch.Almacenamiento de tensores en PyTorch.Módulo de redes neuronales.Optimización en... Seguir leyendo →
Almacenamiento de tensores en PyTorch
Como hemos visto, los tensores son un elemento básico en PyTorch. Son los elementos de diferente rango (escalares, vectores, matrics, etc.) que contienen la información en PyTorch y sobre los que actúan los modelos. Sin embargo, a pesar de su rango y dimensiones, los tensores se almacenan en memoria en un array unidimensional de elementos... Seguir leyendo →
Hooks en PyTorch
En programación, nos referimos a un hook como el conjunto de técnicas que modifican o aumentan el comportamiento de un programa ante un evento. Esto suele usarse para depurar un programa o ampliar su funcionalidad. En PyTorch, un hook se puede registrar para el objeto tensor o para el objeto nn.module y los eventos que... Seguir leyendo →
Vehículos autónomos, una carrera hacia la IA general
En los últimos años estamos viendo una carrera entre los diferentes fabricantes y proveedores de vehículos hacia la conducción autónoma. Tesla, Waymo, Mobileye, Nvidia, están destinando grandes cantidades de recursos para elevar la autonomía de los vehículos. El objetivo es que el vehículo, a partir de la información captada a través de los sensores, tome... Seguir leyendo →
Creando nuevas funciones en PyTorch
En este post de nuestro tutorial de deep learning con PyToch vamos a ver como extender PyTorch. Si quieremos implementar un nuevo módulo o función no disponible en las librerías de PyTorch tenemos varias opciones dependiendo del caso: Si queremos añadir primitivas clásicas (if, while,...) en un módulo, simplemente insertaremos las primitivas en el método... Seguir leyendo →
Reproducibilidad de los modelos en deep learning
En los modelos de deep learning puede haber varias fuentes de aleatoriedad. Los parámetros del modelo, algunos vectores iniciales y algunas variables auxiliares pueden requerir un valor inicial aleatorio. Por ello, es necesario realizar ciertas acciones para que los modelos tengan la máxima reproducibilidad y el modelo se comporte igual en diferentes ejecuciones. Lo primero... Seguir leyendo →
Graph Neural Networks con PyTorch Geometric
En este post vamos a ver una introducción a las Graph Neural Networks (GNNs) y la librería PyTorch Geometric, que nos permite aplicar el deep learning a datos no estructurados, como grafos, empleando este tipo de modelos. Las GNNs permiten aplicar redes neuronales a grafos, teniendo en cuenta su estructura basada en nodos conectados entre... Seguir leyendo →