PyTorTutorial

โšก Resumen inteligente

PyTorch es el marco de aprendizaje profundo de cรณdigo abierto de Meta, que actualmente impulsa el 85 por ciento de los artรญculos de investigaciรณn sobre IA en 2026. LessLos cursos abarcan la instalaciรณn, los conceptos bรกsicos del framework, la regresiรณn simple, la clasificaciรณn de imรกgenes y la implementaciรณn de AWS SageMaker.

  • ๐Ÿง  Grรกficos dinรกmicos: La ejecuciรณn inmediata significa que los tensores se ejecutan lรญnea por lรญnea, facilitando Python-depuraciรณn de estilo.
  • ๐Ÿ PythonAPI de IC: Se lee con naturalidad para cualquiera familiarizado con NumPy y Python.
  • ๐Ÿ“ฆ Ecosistema rico: Hugging Face, vLLM, DeepSpeed โ€‹โ€‹y TorchVision estรก construido sobre PyTorch.
  • โš™๏ธ Flujo de trabajo de capacitaciรณn: Defina el modelo, elija la funciรณn de pรฉrdida y el optimizador, luego realice bucles hacia adelante, hacia atrรกs y paso a paso.
  • ๐Ÿ“Š Dominio de la investigaciรณn: El 85 por ciento de los artรญculos recientes utilizan PyTorch frente al 15 por ciento de TensorFlow.
  • ๐Ÿค– Preparado para el mรกster en Derecho (LLM): Compatibilidad nativa con transformadores, ajuste fino de LoRA y flujos de trabajo de cuantizaciรณn.

PyTorTutorial

ยฟQuรฉ es Py?Torh?

PyTorch es un cรณdigo abierto TorBiblioteca de aprendizaje automรกtico basada en ch para el procesamiento del lenguaje natural utilizando PythonEs similar a NumPy, pero con un potente soporte para GPU. Ofrece grรกficos computacionales dinรกmicos que se pueden modificar sobre la marcha con la ayuda de autograd.py.Torch tambiรฉn es mรกs rรกpido que otros frameworks. Fue desarrollado por el Grupo de Investigaciรณn de IA de Facebook en 2016.

Saber quรฉ es PyTorOfrece una visiรณn equilibrada de sus fortalezas y debilidades.

PyTorVentajas y desventajas

A continuaciรณn se presentan las ventajas y desventajas de PyTorcanal:

Ventajas de PyTorch

  1. Biblioteca sencilla
    PyTorEl cรณdigo es sencillo. Es fรกcil de entender y puedes usar la biblioteca al instante. Por ejemplo, echa un vistazo al fragmento de cรณdigo que aparece a continuaciรณn:
class Net(torch.nn.Module):
   def __init__(self):
       super(Net, self).__init__()
       self.layer = torch.nn.Linear(1, 1)

   def forward(self, x):
       x = self.layer(x)      
       return x

Como se mencionรณ anteriormente, puede definir el modelo de red fรกcilmente y comprender el cรณdigo rรกpidamente sin mucha capacitaciรณn.

  1. Grรกfico computacional dinรกmico

Grรกfico computacional dinรกmico

Fuente de la imagen: Explorando el aprendizaje profundo con PyTorch

PyTorch ofrece grafos computacionales dinรกmicos (DAG). Los grafos computacionales son una forma de expresar expresiones matemรกticas en modelos o teorรญas grรกficas, como nodos y aristas. El nodo realiza la operaciรณn matemรกtica, y la arista es un tensor que se introduce en los nodos y transporta la salida del nodo en forma de tensor.

DAG es un grรกfico que tiene una forma arbitraria y puede realizar operaciones entre diferentes grรกficos de entrada. En cada iteraciรณn se crea un nuevo grรกfico. Por lo tanto, es posible tener la misma estructura grรกfica o crear un nuevo grรกfico con una operaciรณn diferente, o podemos llamarlo un grรกfico dinรกmico.

  1. Mejor rendimiento

Comunidades e investigadores comparan y comparan marcos para ver cuรกl es mรกs rรกpido. Un repositorio de GitHub Punto de referencia sobre marcos de aprendizaje profundo y GPU informรณ que PyTorch es mรกs rรกpido que el otro framework en tรฉrminos de imรกgenes procesadas por segundo.

Como puedes ver a continuaciรณn, los grรกficos comparativos con vgg16 y resnet152

Ventajas de PyTorch

Ventajas de PyTorch

  1. Nativo Python

PyTorch estรก mรกs basado en Python. Por ejemplo, si quieres entrenar un modelo, puedes usar el flujo de control nativo como looping y recursiones sin necesidad de aรฑadir variables o sesiones especiales para poder ejecutarlas. Esto resulta muy รบtil para el proceso de formaciรณn.

PyTorch tambiรฉn implementa la programaciรณn imperativa, y sin duda es mรกs flexible. Por lo tanto, es posible imprimir el valor del tensor en medio de un proceso de cรกlculo.

Desventaja de PyTorch

PyTorch requiere aplicaciones de terceros para la visualizaciรณn. Tambiรฉn necesita un servidor API para la producciรณn.

A continuaciรณn, en este PyTorEn este tutorial, aprenderemos sobre la diferencia entre PyTorch y TensorFlow.

PyTorch vs. TensorFlow

Parรกmetro PyTorch TensorFlow
Definiciรณn de modelo El modelo estรก definido en una subclase y ofrece un paquete fรกcil de usar. El modelo estรก definido con muchos y es necesario comprender la sintaxis.
Soporte GPU Sรญ: Sรญ:
Tipo de grรกfico Dynamic Estรกtico
Accesorios Sin herramienta de visualizaciรณn Puedes utilizar la herramienta de visualizaciรณn Tensorboard.
Comunidad La comunidad sigue creciendo Grandes comunidades activas

Teniendo en cuenta la comparaciรณn, el siguiente paso es obtener PyTorch ejecutรกndose localmente o en la nube.

Instalando PyTorch

Linux

Es sencillo instalarlo en Linux. Puede optar por utilizar un entorno virtual o instalarlo directamente con acceso root. Escriba este comando en la terminal

pip3 install --upgrade torch torchvision

Sagemaker de AWS

Sagemaker es una de las plataformas en Amazon Servicio web que ofrece un potente motor de aprendizaje automรกtico con configuraciones de aprendizaje profundo preinstaladas para que los cientรญficos o desarrolladores de datos construyan, entrenen e implementen modelos a cualquier escala.

Primero abra el Amazon Sabio consola y haga clic en Crear instancia de notebook y complete todos los detalles para su notebook.

Sagemaker de AWS

Siguiente paso, haga clic en Abrir para iniciar la instancia de su cuaderno.

Sagemaker de AWS

Finalmente, en JupyterHaz clic en Nuevo y elige conda_pytorch_p36 y ya puedes usar tu instancia de notebook con PyTorch instalado.

A continuaciรณn, en este PyTorEn este tutorial, aprenderemos sobre Python.TorConceptos bรกsicos del marco ch.

Una vez realizada la instalaciรณn, el siguiente paso es la propia API.

PyTorConceptos bรกsicos del marco de trabajo

Aprendamos los conceptos bรกsicos de PyTorch antes de profundizar. PyTorch utiliza Tensor para cada variable, de forma similar a ndarray de numpy, pero con soporte para computaciรณn GPU. Aquรญ explicaremos el modelo de red, la funciรณn de pรฉrdida, la retropropagaciรณn y el optimizador.

modelo de red

La red se puede construir subclasificando torch.nn. Hay 2 partes principales,

  1. La primera parte es definir los parรกmetros y capas que utilizarรกs.
  2. La segunda parte es la tarea principal llamada proceso directo que tomarรก una entrada y predecirรก la salida.
Import torch
import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
 def __init__(self):
        super(Model, self).__init__()
        self.conv1 = nn.Conv2d(3, 20, 5)
        self.conv2 = nn.Conv2d(20, 40, 5)
self.fc1 = nn.Linear(320, 10)

def forward(self, x):
       x = F.relu(self.conv1(x))
       x = F.relu(self.conv2(x))
       x = x.view(-1, 320)
       x = F.relu(self.fc1(x))
       return F.log_softmax(x)

net = Model()

Como puede ver arriba, crea una clase de nn.Module llamada Modelo. Contiene 2 capas Conv2d y una capa Lineal. La primera capa conv2d toma una entrada de 3 y una forma de salida de 20. La segunda capa tomarรก una entrada de 20 y producirรก una forma de salida de 40. La รบltima capa es una capa completamente conectada con la forma de 320 y producirรก una salida de 10.

El proceso de avance tomarรก una entrada de X y la enviarรก a la capa conv1 y realizarรก la funciรณn ReLU.

De manera similar, tambiรฉn alimentarรก la capa conv2. Despuรฉs de eso, la x cambiarรก a (-1, 320) y se introducirรก en la capa FC final. Antes de enviar la salida, utilizarรก la funciรณn de activaciรณn softmax.

El proceso hacia atrรกs lo define automรกticamente autograd, por lo que solo necesita definir el proceso hacia adelante.

Funciรณn de pรฉrdida

La funciรณn de pรฉrdida se utiliza para medir quรฉ tan bien el modelo de predicciรณn es capaz de predecir los resultados esperados. PyTorch ya tiene muchas funciones de pรฉrdida estรกndar en el mรณdulo torch.nn. Por ejemplo, puede usar la pรฉrdida de entropรญa cruzada para resolver un problema de Py multiclase.TorProblema de clasificaciรณn ch. Es fรกcil definir la funciรณn de pรฉrdida y calcular las pรฉrdidas:

loss_fn = nn.CrossEntropyLoss()

#training process
loss = loss_fn(out, target)

Es fรกcil usar tu propio cรกlculo de funciรณn de pรฉrdida con PyTorch.

respaldo

Para realizar la propagaciรณn hacia atrรกs, simplemente llame a los.backward(). El error se calcularรก, pero recuerde borrar el gradiente existente con zero_grad()

net.zero_grad() # to clear the existing gradient
loss.backward() # to perform backpropragation

Optimizador

Torch.optim proporciona algoritmos de optimizaciรณn comunes. Puedes definir un optimizador con un simple paso:

optimizer = torch.optim.SGD(net.parameters(), lr = 0.01, momentum=0.9)

Debe pasar los parรกmetros del modelo de red y la tasa de aprendizaje para que en cada iteraciรณn los parรกmetros se actualicen despuรฉs del proceso de backprop.

La forma mรกs clara de aprender la API es mediante un pequeรฑo ejemplo completo.

Regresiรณn simple con PyTorch

Aprendamos regresiรณn simple con PyTorEjemplos de ch:

Paso 1) Creando nuestro modelo de red

Nuestro modelo de red es una capa lineal simple con una forma de entrada y salida de 1.

from __future__ import print_function

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable

class Net(nn.Module):
   def __init__(self):
       super(Net, self).__init__()
       self.layer = torch.nn.Linear(1, 1)

   def forward(self, x):
       x = self.layer(x)      
       return x

net = Net()
print(net)

Y la salida de la red deberรญa ser asรญ.

Net(
  (hidden): Linear(in_features=1, out_features=1, bias=True)
)

Paso 2) Datos de prueba

Antes de iniciar el proceso de formaciรณn, es necesario conocer nuestros datos. Realizas una funciรณn aleatoria para probar nuestro modelo. Y = x3 pecado(x)+ 3x+0.8 rand(100)

# Visualize our data
import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(100)
y = np.sin(x) * np.power(x,3) + 3*x + np.random.rand(100)*0.8

plt.scatter(x, y)
plt.show()

Aquรญ estรก el diagrama de dispersiรณn de nuestra funciรณn:

Diagrama de dispersiรณn de regresiรณn simple con PyTorch

Antes de comenzar el proceso de entrenamiento, debe convertir la matriz numpy a variables compatibles con Torch y autograd como se muestra en el siguiente PyTorEjemplo de regresiรณn ch.

# convert numpy array to tensor in shape of input size
x = torch.from_numpy(x.reshape(-1,1)).float()
y = torch.from_numpy(y.reshape(-1,1)).float()
print(x, y)

Paso 3) Optimizador y pรฉrdida

A continuaciรณn, debemos definir el Optimizador y la Funciรณn de Pรฉrdida para nuestro proceso de capacitaciรณn.

# Define Optimizer and Loss Function
optimizer = torch.optim.SGD(net.parameters(), lr=0.2)
loss_func = torch.nn.MSELoss()

Paso 4) Entrenamiento

Ahora comencemos nuestro proceso de formaciรณn. Con una รฉpoca de 250, iterarรก nuestros datos para encontrar el mejor valor para nuestros hiperparรกmetros.

inputs = Variable(x)
outputs = Variable(y)
for i in range(250):
   prediction = net(inputs)
   loss = loss_func(prediction, outputs) 
   optimizer.zero_grad()
   loss.backward()        
   optimizer.step()       

   if i % 10 == 0:
       # plot and show learning process
       plt.cla()
       plt.scatter(x.data.numpy(), y.data.numpy())
       plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=2)
       plt.text(0.5, 0, 'Loss=%.4f' % loss.data.numpy(), fontdict={'size': 10, 'color':  'red'})
       plt.pause(0.1)

plt.show()

Paso 5) Resultado

Como puede ver a continuaciรณn, ha realizado Py correctamente.TorRegresiรณn ch con una red neuronal. En realidad, en cada iteraciรณn, la lรญnea roja en el grรกfico se actualizarรก y cambiarรก de posiciรณn para ajustarse a los datos. Pero en esta imagen, solo se muestra el resultado final, como se muestra en el siguiente PyTorEjemplo de ch:

Grรกfico de dispersiรณn del resultado de regresiรณn simple

La regresiรณn es un calentamiento; la clasificaciรณn de imรกgenes ejercita los mรบsculos de aprendizaje profundo de PyTorch.

Ejemplo de clasificaciรณn de imรกgenes con PyTorch

Uno de los mรฉtodos populares para aprender los conceptos bรกsicos de deep learning Se trata del conjunto de datos MNIST. Es el ยซHola mundoยป del aprendizaje profundo. El conjunto de datos contiene nรบmeros escritos a mano del 0 al 9 con un total de 60,000 10,000 muestras de entrenamiento y 28 28 muestras de prueba que ya estรกn etiquetadas con un tamaรฑo de XNUMX ร— XNUMX pรญxeles.

Clasificaciรณn de imรกgenes con PyTorch

Paso 1) Preprocesar los datos

En el primer paso de este PyTorEjemplo de clasificaciรณn ch, cargarรก el conjunto de datos utilizando el mรณdulo torchvision.

Antes de comenzar el proceso de capacitaciรณn, es necesario comprender los datos. Torchvision cargarรก el conjunto de datos y transformarรก las imรกgenes segรบn los requisitos apropiados para la red, como la forma y la normalizaciรณn de las imรกgenes.

import torch
import torchvision
import numpy as np
from torchvision import datasets, models, transforms

# This is used to transform the images to Tensor and normalize it
transform = transforms.Compose(
   [transforms.ToTensor(),
    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

training = torchvision.datasets.MNIST(root='./data', train=True,
                                       download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(training, batch_size=4,
                                         shuffle=True, num_workers=2)

testing = torchvision.datasets.MNIST(root='./data', train=False,
                                      download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(testing, batch_size=4,
                                        shuffle=False, num_workers=2)

classes = ('0', '1', '2', '3',
          '4', '5', '6', '7', '8', '9')
         
import matplotlib.pyplot as plt
import numpy as np

#create an iterator for train_loader
# get random training images
data_iterator = iter(train_loader)
images, labels = data_iterator.next()

#plot 4 images to visualize the data
rows = 2
columns = 2
fig=plt.figure()
for i in range(4):
   fig.add_subplot(rows, columns, i+1)
   plt.title(classes[labels[i]])
   img = images[i] / 2 + 0.5     # this is for unnormalize the image
   img = torchvision.transforms.ToPILImage()(img)
   plt.imshow(img)
plt.show()

La funciรณn de transformaciรณn convierte las imรกgenes en tensor y normaliza el valor. La funciรณn torchvision.transforms.MNIST descargarรก el conjunto de datos (si no estรก disponible) en el directorio, configurarรก el conjunto de datos para entrenamiento si es necesario y realizarรก el proceso de transformaciรณn.

Para visualizar el conjunto de datos, utiliza data_iterator para obtener el siguiente lote de imรกgenes y etiquetas. Utilice matplot para trazar estas imรกgenes y su etiqueta adecuada. Como podรฉis ver debajo nuestras imรกgenes y sus etiquetas.

Ejemplo de clasificaciรณn de imรกgenes con PyTorch

Paso 2) Configuraciรณn del modelo de red

Ahora en este PyTorPor ejemplo, crearรกs una red neuronal simple para Python.Torclasificaciรณn de imรกgenes ch.

Aquรญ te presentamos otra forma de crear el modelo de red en Py.Torcap. Usaremos nn.Sequential para crear un modelo de secuencia en lugar de crear una subclase de nn.Module.

import torch.nn as nn

# flatten the tensor into 
class Flatten(nn.Module):
   def forward(self, input):
       return input.view(input.size(0), -1)

#sequential based model
seq_model = nn.Sequential(
           nn.Conv2d(1, 10, kernel_size=5),
           nn.MaxPool2d(2),
           nn.ReLU(),
           nn.Dropout2d(),
           nn.Conv2d(10, 20, kernel_size=5),
           nn.MaxPool2d(2),
           nn.ReLU(),
           Flatten(),
           nn.Linear(320, 50),
           nn.ReLU(),
           nn.Linear(50, 10),
           nn.Softmax(),
         )

net = seq_model
print(net)

Aquรญ estรก el resultado de nuestro modelo de red.

Sequential(
  (0): Conv2d(1, 10, kernel_size=(5, 5), stride=(1, 1))
  (1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (2): ReLU()
  (3): Dropout2d(p=0.5)
  (4): Conv2d(10, 20, kernel_size=(5, 5), stride=(1, 1))
  (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (6): ReLU()
  (7): Flatten()
  (8): Linear(in_features=320, out_features=50, bias=True)
  (9): ReLU()
  (10): Linear(in_features=50, out_features=10, bias=True)
  (11): Softmax()
)

Explicaciรณn de la red

  1. La secuencia es que la primera capa es una capa Conv2D con una forma de entrada de 1 y una forma de salida de 10 con un tamaรฑo de nรบcleo de 5.
  2. A continuaciรณn, tienes una capa MaxPool2D.
  3. Una funciรณn de activaciรณn de ReLU
  4. una capa de abandono para eliminar valores de baja probabilidad.
  5. Luego, un segundo Conv2d con la forma de entrada de 10 de la รบltima capa y la forma de salida de 20 con un tamaรฑo de kernel de 5
  6. Siguiente una capa MaxPool2d
  7. Funciรณn de activaciรณn ReLU.
  8. Despuรฉs de eso, aplanarรกs el tensor antes de introducirlo en la capa Lineal.
  9. Linear Layer mapearรก nuestra salida en la segunda capa Linear con la funciรณn de activaciรณn softmax.

Paso 3) Entrena el modelo

Antes de comenzar el proceso de capacitaciรณn, es necesario configurar el criterio y la funciรณn optimizadora.

Para el criterio, utilizarรก la funciรณn de pรฉrdida de entropรญa cruzada (CrossEntropyLoss). Para el optimizador, utilizarรก el descenso de gradiente estocรกstico (SGD) con una tasa de aprendizaje de 0.001 y un momento de 0.9, como se muestra en el siguiente archivo Py.Torejemplo de ch.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

El proceso de avance tomarรก la forma de entrada y la pasarรก a la primera capa conv2d. Luego, desde allรญ, se introducirรก en maxpool2d y finalmente se colocarรก en la funciรณn de activaciรณn de ReLU. El mismo proceso ocurrirรก en la segunda capa conv2d. Despuรฉs de eso, la entrada se reformarรก a (-1,320) y se introducirรก en la capa fc para predecir la salida.

Ahora, comenzarรกs el proceso de formaciรณn. Recorrerรก nuestro conjunto de datos 2 veces o con una รฉpoca de 2 e imprimirรก la pรฉrdida actual en cada lote de 2000.

for epoch in range(2): 

#set the running loss at each epoch to zero
   running_loss = 0.0
# we will enumerate the train loader with starting index of 0
# for each iteration (i) and the data (tuple of input and labels)
   for i, data in enumerate(train_loader, 0):
       inputs, labels = data

# clear the gradient
       optimizer.zero_grad()

#feed the input and acquire the output from network
       outputs = net(inputs)

#calculating the predicted and the expected loss
       loss = criterion(outputs, labels)

#compute the gradient
       loss.backward()

#update the parameters
       optimizer.step()

       # print statistics
       running_loss += loss.item()
       if i % 1000 == 0:
           print('[%d, %5d] loss: %.3f' %
                 (epoch + 1, i + 1, running_loss / 1000))
           running_loss = 0.0

En cada รฉpoca, el enumerador obtendrรก la siguiente tupla de entrada y las etiquetas correspondientes. Antes de enviar la entrada a nuestro modelo de red, debemos borrar el gradiente anterior. Esto es necesario porque despuรฉs del proceso hacia atrรกs (proceso de retropropagaciรณn), el gradiente se acumularรก en lugar de ser reemplazado. Luego, calcularemos las pรฉrdidas de la producciรณn prevista a partir de la producciรณn esperada. Despuรฉs de eso, haremos una retropropagaciรณn para calcular el gradiente y, finalmente, actualizaremos los parรกmetros.

Aquรญ estรก el resultado del proceso de formaciรณn.

[1, 	1] loss: 0.002
[1,  1001] loss: 2.302
[1,  2001] loss: 2.295
[1,  3001] loss: 2.204
[1,  4001] loss: 1.930
[1,  5001] loss: 1.791
[1,  6001] loss: 1.756
[1,  7001] loss: 1.744
[1,  8001] loss: 1.696
[1,  9001] loss: 1.650
[1, 10001] loss: 1.640
[1, 11001] loss: 1.631
[1, 12001] loss: 1.631
[1, 13001] loss: 1.624
[1, 14001] loss: 1.616
[2, 	1] loss: 0.001
[2,  1001] loss: 1.604
[2,  2001] loss: 1.607
[2,  3001] loss: 1.602
[2,  4001] loss: 1.596
[2,  5001] loss: 1.608
[2,  6001] loss: 1.589
[2,  7001] loss: 1.610
[2,  8001] loss: 1.596
[2,  9001] loss: 1.598
[2, 10001] loss: 1.603
[2, 11001] loss: 1.596
[2, 12001] loss: 1.587
[2, 13001] loss: 1.596
[2, 14001] loss: 1.603

Paso 4) Pruebe el modelo

Despuรฉs de entrenar nuestro modelo, debe probarlo o evaluarlo con otros conjuntos de imรกgenes.

Usaremos un iterador para test_loader y generarรก un lote de imรกgenes y etiquetas que se pasarรกn al modelo entrenado. Se mostrarรก el resultado previsto y se compararรก con el resultado esperado.

#make an iterator from test_loader
#Get a batch of training images
test_iterator = iter(test_loader)
images, labels = test_iterator.next()

results = net(images)
_, predicted = torch.max(results, 1)

print('Predicted: ', ' '.join('%5s' % classes[predicted[j]] for j in range(4)))

fig2 = plt.figure()
for i in range(4):
   fig2.add_subplot(rows, columns, i+1)
   plt.title('truth ' + classes[labels[i]] + ': predict ' + classes[predicted[i]])
   img = images[i] / 2 + 0.5     # this is to unnormalize the image
   img = torchvision.transforms.ToPILImage()(img)
   plt.imshow(img)
plt.show()

Ejemplo de clasificaciรณn de imรกgenes con PyTorch

Preguntas Frecuentes

Sรญ, para la mayorรญa de los estudiantes. PyTorla ejecuciรณn ansiosa de ch, PythonLa API de ic y la alineaciรณn Hugging Face facilitan el aprendizaje. Las encuestas muestran que el 60 por ciento de los principiantes eligen PyTorch primero.

Asistentes de IA como Copilot, Cursor y JetBrains La IA genera PyTorbucles de entrenamiento ch, sugiere arquitecturas de capas y depura errores de forma de tensor. Hugging Face Transformers tambiรฉn incluye PyTormodelos ch-first.

Sรญ. Las herramientas de IA generan la estructura de las clases nn.Module, seleccionan el optimizador y organizan los bucles de entrenamiento. Ademรกs, explican los errores de CUDA, sugieren indicadores de precisiรณn mixta y recomiendan tamaรฑos de lote segรบn la forma del conjunto de datos.

PyTorch utiliza grรกficos dinรกmicos y domina la investigaciรณn. TensorFlow lidera la implementaciรณn en producciรณn en dispositivos mรณviles y de borde a travรฉs de TensorFlow Lite. La brecha de rendimiento se ha cerrado gracias a torch.compile en PyTorcap 2

Aproximadamente el 85 por ciento de los artรญculos de investigaciรณn sobre aprendizaje profundo utilizan PyTorch en 2026. El modelo de grรกfico dinรกmico se ajusta a la experimentaciรณn, y todo el ecosistema LLM, desde Hugging Face hasta vLLM, estรก construido en torno a PyTorch.

PyTorch se ejecuta de forma nativa en CPU y GPU CUDA, admite ROCm en GPU AMD, MPS en Apple Silicon y TPU a travรฉs de PyTorProyecto ch XLA. Elija el dispositivo correcto con llamadas .to().

Sรญ a travรฉs de TorchServe, exportaciรณn ONNX y el mรกs reciente ExecuTorch runtime. TensorFlow Lite sigue siendo mรกs maduro para dispositivos mรณviles, pero PyTorch estรก reduciendo rรกpidamente la brecha en la inferencia de borde.

Los principiantes construyen su primera red en uno o dos dรญas. Dominar las redes neuronales convolucionales (CNN), los transformadores, el entrenamiento distribuido y la implementaciรณn en producciรณn suele requerir de tres a seis meses de trabajo constante en proyectos.

Resumir este post con: