Tutorial de PyTorch

PyTorch es una biblioteca de aprendizaje automático de código abierto, utilizada principalmente para la investigación y el desarrollo en áreas como la visión por computadora (CV), el procesamiento del lenguaje natural (NLP) y el reconocimiento de voz.

PyTorch fue desarrollado por el equipo de investigación en inteligencia artificial de Facebook y es ampliamente utilizado en la comunidad de aprendizaje automático y aprendizaje profundo.

PyTorch se caracteriza por su flexibilidad y facilidad de uso, y es especialmente adecuado para la investigación y el desarrollo en aprendizaje profundo.

¿Quién debería leer este tutorial?

Siempre que tengas conocimientos básicos de programación, puedes leer este tutorial. Aprender PyTorch es adecuado para personas interesadas en el aprendizaje profundo y el aprendizaje automático, incluyendo científicos de datos, ingenieros, investigadores y estudiantes.

Conocimientos que necesitas antes de leer este tutorial:

Antes de comenzar a leer este tutorial, debes tener los conocimientos básicos que incluyen programación en Python, matemáticas básicas (álgebra lineal, teoría de probabilidades, cálculo), conceptos básicos de aprendizaje automático, conocimientos de redes neuronales, así como cierta capacidad de lectura en inglés para consultar documentación y recursos.

  • Fundamentos de programación: familiarízate con al menos un lenguaje de programación, especialmentePython, porque PyTorch está escrito principalmente en Python.

  • Fundamentos de matemáticas: comprende los conocimientos matemáticos básicos, como álgebra lineal, teoría de probabilidades y estadística, cálculo, etc., que son fundamentales para entender e implementar algoritmos de aprendizaje automático.

  • Fundamentos de aprendizaje automático: comprende los conceptos básicos del aprendizaje automático, como el aprendizaje supervisado, el aprendizaje no supervisado, el aprendizaje por refuerzo y las métricas de evaluación de modelos (exactitud, exhaustividad, puntuación F1, etc.).

  • Fundamentos de aprendizaje profundo: familiarízate con los conceptos básicos de las redes neuronales, incluyendo redes neuronales feedforward, redes neuronales convolucionales (CNN), redes neuronales recurrentes (RNN), redes de memoria a largo plazo (LSTM), entre otras.

  • Fundamentos de visión por computadora y procesamiento del lenguaje natural: si planeas aplicar PyTorch en estos campos, tener los conocimientos de fondo relevantes será de gran ayuda.

  • Fundamentos de Linux/Unix: aunque no es imprescindible, conocer los fundamentos del sistema operativo Linux/Unix puede ayudarte a usar herramientas y scripts de línea de comandos de manera más eficaz, especialmente en el preprocesamiento de datos y el entrenamiento de modelos.

  • Capacidad de lectura en inglés: dado que muchos documentos, tutoriales y discusiones comunitarias se realizan en inglés, contar con cierta capacidad de lectura en inglés te ayudará a aprender mejor y a resolver problemas.

Ejemplo

A continuación se muestran algunas operaciones básicas con tensores en PyTorch: cómo crear tensores aleatorios, realizar operaciones elemento a elemento, acceder a elementos específicos y calcular la suma y el valor máximo.

Ejemplo

import torch

# Configurar el tipo de dato y el dispositivo
dtype = torch.float  # El tipo de dato del tensor es de punto flotante
device = torch.device("cpu")  # Este cálculo se realiza en la CPU

# Crear e imprimir dos tensores aleatorios a y b
a = torch.randn(2, 3, device=device, dtype=dtype)  # Crear un tensor aleatorio de 2x3
b = torch.randn(2, 3, device=device, dtype=dtype)  # Crear otro tensor aleatorio de 2x3

print("Tensor a:")
print(a)

print("Tensor b:")
print(b)

# Multiplicar elemento a elemento y mostrar el resultado
print("Producto elemento a elemento de a y b:")
print(a * b)

# Mostrar la suma de todos los elementos del tensor a
print("Suma de todos los elementos del tensor a:")
print(a.sum())

# Mostrar el elemento en la fila 2, columna 3 del tensor a (nota: los índices comienzan en 0)
print("Elemento en la fila 2, columna 3 del tensor a:")
print(a[1, 2])

# Mostrar el valor máximo del tensor a
print("Valor máximo del tensor a:")
print(a.max())

Crear tensores:

  • torch.randn(2, 3)Crea un tensor de 2 filas y 3 columnas, relleno con números aleatorios (siguiendo una distribución normal).
  • device=deviceydtype=dtypeSe especifican respectivamente el dispositivo de cálculo (CPU o GPU) y el tipo de dato (punto flotante).

Operaciones con tensores:

  • a * b: multiplicación elemento a elemento.
  • a.sum(): calcular la suma de todos los elementosadel tensor.
  • a[1, 2]: acceder al elementoaen la fila 2, columna 3 del tensor (nota: los índices comienzan en 0).
  • a.max(): obtener el valor máximoadel tensor.

Salida: (los valores variarán en cada ejecución)

张量 a:
tensor([[-0.1460, -0.3490,  0.3705],
        [-1.1141,  0.7661,  1.0823]])

张量 b:
tensor([[ 0.6901, -0.9663,  0.3634],
        [-0.6538, -0.3728, -1.1323]])

a 和 b 的逐元素乘积:
tensor([[-0.1007,  0.3372,  0.1346],
        [ 0.7284, -0.2856, -1.2256]])

张量 a 所有元素的总和:
tensor(0.6097)

张量 a 第 2 行第 3 列的元素:
tensor(1.0823)

张量 a 中的最大值:
tensor(1.0823)

Enlaces de referencia

Sitio web oficial de PyTorch:https://pytorch.org/

Tutorial oficial de introducción a PyTorch:https://pytorch.org/get-started/locally/

Documentación oficial de PyTorch:https://pytorch.org/docs/stable/index.html

Código fuente de PyTorch:https://github.com/pytorch/pytorch

Otras extensiones