ComenzarEmpieza gratis

Entrenamiento de modelos multisalida

Al entrenar modelos con múltiples salidas, es crucial asegurarse de que la función de pérdida se define correctamente.

En este caso, el modelo produce dos salidas: predicciones para el alfabeto y para el carácter. Para cada una de ellas, existen las correspondientes etiquetas de verdad fundamental, que te permitirán calcular dos pérdidas distintas: una derivada de la clasificación incorrecta de alfabetos, y otra de la clasificación incorrecta de caracteres. Como en ambos casos se trata de una tarea de clasificación multietiqueta, se puede aplicar cada vez la pérdida de entropía cruzada.

Sin embargo, el descenso gradiente solo puede optimizar una función de pérdida. Por tanto, definirás la pérdida total como la suma de las pérdidas del alfabeto y de los caracteres.

Este ejercicio forma parte del curso

Aprendizaje profundo intermedio con PyTorch

Ver curso

Instrucciones de ejercicio

  • Calcula la pérdida de clasificación del alfabeto y asígnala a loss_alpha.
  • Calcula la pérdida de clasificación de caracteres y asígnala a loss_char.
  • Calcula la pérdida total como la suma de las dos pérdidas parciales y asígnala a loss.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.05)

for epoch in range(1):
    for images, labels_alpha, labels_char in dataloader_train:
        optimizer.zero_grad()
        outputs_alpha, outputs_char = net(images)
        # Compute alphabet classification loss
        loss_alpha = ____
        # Compute character classification loss
        loss_char = ____
        # Compute total loss
        loss = ____
        loss.backward()
        optimizer.step()
Editar y ejecutar código