PyTorch: deep learning desde Meta – tutoriales y ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es PyTorch?

PyTorch es un potente y flexible framework de deep learning de código abierto, desarrollado por Meta (anteriormente Facebook). Proporciona herramientas para crear, entrenar y desplegar redes neuronales con un alto nivel de control. Gracias a su transparencia y soporte para grafos computacionales dinámicos, PyTorch se ha ganado la popularidad tanto entre investigadores como entre desarrolladores de sistemas aplicados basados en inteligencia artificial.

Historia y desarrollo de PyTorch

PyTorch se presentó por primera vez en enero de 2017 como una alternativa a otros frameworks de deep learning, incluyendo TensorFlow y Theano. Su desarrollo se llevó a cabo en la división de investigación Facebook AI Research (FAIR) bajo la dirección de Soumith Chintala. La base para crear PyTorch fue la biblioteca Torch, escrita en el lenguaje Lua.

Desde su lanzamiento, PyTorch se convirtió rápidamente en el estándar de facto en el ámbito académico y en la industria gracias a su flexibilidad, su grafo dinámico y su API intuitiva. En 2022, PyTorch pasó a ser gestionado por la organización sin fines de lucro PyTorch Foundation, lo que garantizó su independencia y desarrollo a largo plazo.

Características clave de PyTorch

Grafos computacionales dinámicos

PyTorch utiliza el enfoque "define-by-run", lo que significa que el grafo de computación se crea durante la ejecución. Esto proporciona:

  • Facilidad de depuración y visualización
  • Posibilidad de cambiar la arquitectura del modelo durante la ejecución
  • Comprensión intuitiva del flujo de datos

API Pythonic

La sintaxis de PyTorch es similar a la de NumPy, lo que hace que la transición al framework sea extremadamente sencilla para los desarrolladores de Python:

  • Operaciones familiares con tensores
  • Integración natural con el ecosistema de Python
  • Curva de aprendizaje mínima

Diferenciación automática (Autograd)

Sistema integrado para el cálculo automático de gradientes:

  • Seguimiento de operaciones para la retropropagación
  • Soporte para arquitecturas complejas
  • Uso eficiente de la memoria

Soporte para GPU y computación distribuida

  • Soporte nativo para CUDA
  • Distribución automática de tensores entre dispositivos
  • Soporte para entrenamiento multi-GPU
  • Entrenamiento distribuido en múltiples máquinas

Arquitectura de PyTorch

Componentes principales

PyTorch consta de varios módulos clave, cada uno responsable de una funcionalidad específica:

torch — módulo principal con operaciones sobre tensores y funciones matemáticas

torch.nn — módulo para construir redes neuronales, contiene capas, funciones de activación y funciones de pérdida

torch.optim — optimizadores para el entrenamiento de modelos

torch.autograd — sistema de diferenciación automática

torch.utils.data — herramientas para trabajar con datos y su carga

torchvision — módulo especializado para visión por computadora

torchaudio — módulo para procesamiento de audio

torchtext — herramientas para trabajar con datos de texto

Instalación y configuración de PyTorch

Instalación básica

pip install torch torchvision torchaudio

Instalación con soporte CUDA

# Para CUDA 11.8
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# Para CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Instalación de la versión solo CPU

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
                    

Recommendations