0

Error I'm getting

The code I'm trying:

`def compute_acc(model, data_loader, device): correct_pred, num_examples = 0, 0 for features, targets in data_loader: features = features.to(device) targets = targets.to(device) logits, probas = model(features) _, predicted_labels = torch.max(probas, 1) num_examples += targets.size(0) correct_pred += (predicted_labels == targets).sum() return correct_pred.float()/num_examples * 100

start_time = time.time()

cost_list = [] train_acc_list, valid_acc_list = [], []

for epoch in range(NUM_EPOCHS):

model.train()
for batch_idx, (features, targets) in enumerate(train_loader):
    
    features = features.to(device)
    targets = targets.to(device)
        
    ### FORWARD AND BACK PROP
    logits, probas = model(features)
    cost = F.cross_entropy(logits, targets)
    optimizer.zero_grad()
    
    cost.backward()
    
    ### UPDATE MODEL PARAMETERS
    optimizer.step()
    
    #################################################
    ### CODE ONLY FOR LOGGING BEYOND THIS POINT
    ################################################
    cost_list.append(cost.item())
    if not batch_idx % 150:
        print (f'Epoch: {epoch+1:03d}/{NUM_EPOCHS:03d} | '
               f'Batch {batch_idx:03d}/{len(train_loader):03d} |' 
               f' Cost: {cost:.4f}')

    

model.eval()
with torch.set_grad_enabled(False): # save memory during inference
    
    train_acc = compute_acc(model, train_loader, device=device)
    valid_acc = compute_acc(model, valid_loader, device=device)
    
    print(f'Epoch: {epoch+1:03d}/{NUM_EPOCHS:03d}\n'
          f'Train ACC: {train_acc:.2f} | Validation ACC: {valid_acc:.2f}')
    
    train_acc_list.append(train_acc)
    valid_acc_list.append(valid_acc)
    
elapsed = (time.time() - start_time)/60
print(f'Time elapsed: {elapsed:.2f} min')

elapsed = (time.time() - start_time)/60 print(f'Total Training Time: {elapsed:.2f} min')`

vimuth
  • 5,064
  • 33
  • 79
  • 116
SwDL
  • 1
  • 2

0 Answers0