ComeçarComece gratuitamente

Loop de treinamento do classificador de imagem

É hora de treinar o classificador de imagens! Você usará o Net que definiu anteriormente e o treinará para distinguir entre sete tipos de nuvem.

Para definir a perda e o otimizador, você precisará usar as funções de torch.nn e torch.optim, importadas para você como nn e optim, respectivamente. Você não precisa alterar nada no loop de treinamento em si: ele é exatamente como os que você escreveu antes, com alguma lógica adicional para imprimir a perda durante o treinamento.

Este exercício faz parte do curso

Aprendizagem profunda intermediária com PyTorch

Ver Curso

Instruções de exercício

  • Defina o modelo usando a classe Net com num_classes definido como 7 e atribua-o a net.
  • Defina a função de perda como perda de entropia cruzada e atribua-a a criterion.
  • Defina o otimizador como Adam, passando a ele os parâmetros do modelo e a taxa de aprendizado de 0.001, e atribua-o a optimizer.
  • Inicie o treinamento do loop for iterando sobre o treinamento images e labels de dataloader_train.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____

for epoch in range(3):
    running_loss = 0.0
    # Iterate over training batches
    ____
        optimizer.zero_grad()
        outputs = net(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    
    epoch_loss = running_loss / len(dataloader_train)
    print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")
Editar e executar código