Ошибка выполнения: элемент 0 тензоров не требует градации и не имеет grad_fn в pytorch

#pytorch

Вопрос:

Я пытаюсь реализовать этот код, но я получаю эту ошибку, не могли бы вы мне помочь?

 epochs = 5
running_loss = 0
step = 0
for i in range(epochs):
    for images, labels in train_loader:
        step =1
        images, labels = images.to(device), labels.to(device)
        optimizer.zero_grad()
    
        output = model(images)
        loss = critereon(output, labels)
        loss.backward()
        optimizer.step()
    
        running_loss =loss.item()
        print_every = 5
        if step % print_every == 0:
            model.eval()
            test_loss = 0
            accuracy = 0
        
            for images, labels in test_loader:
                images, labels = images.to(device), labels.to(device)
                output_test = model(images)
                t_loss = critereon(output_test, labels)
                test_loss  = t_loss.item()
            
                #calculate accuracy:
                ps = torch.exp(output_test)
                top_ps, top_class = ps.topk(1, dim = 1)
                equality = top_class == labels.view(*top_class.shape)
                accuracy  = torch.mean(equality.type(torch.FloatTensor))
            
                print(f"Epoch: {epoch 1}"
                f"Train_loss: {running_loss/5:.3f}"
                f"Test Loss: {test_loss/len(test_loader):.3f}"
                f"Acuuracy: {accuracy/len(valid_loader):.3f}")
             running_loss = 0
             model.train()   
 

Комментарии:

1. Можете ли вы предоставить полный анализ ошибок, а также определение модели?