Hi, I am trying to obtain validation loss alongside training loss, but it only prints training loss and ignores validation loss. It doesn’t show any error when I call the function but it doesn’t print validation loss
Here is the code,
def train_model_epochs2(num_epochs):
for epoch in range(num_epochs):
    running_loss = 0.0
    for i, data in enumerate(train_loader, 0):
        images, labels = data

        # Explicitly specifies that data is to be copied onto the device!
        images = images.to(device)  # 
        labels = labels.to(device)  #

        optimizer.zero_grad()
        outputs = model_gpu(images)

        loss = criterion(outputs, labels)
        loss.backward()

        optimizer.step()
        running_loss += loss.item()
        if i % 100 == 99:    # print every 1000 mini-batches
            print('Epoch / Batch [%d / %d] - Loss: %.3f' %
                  (epoch + 1, i + 1, running_loss / 100))
            running_loss = 0.0


    val_loss = 0
    for b, vdata in enumerate(valid_loader, 0):
      with torch.no_grad():

        images, labels = vdata
        images = images.to(device)  # 
        labels = labels.to(device)  # 

        outputs = model_gpu(images)

        # Compute the loss based on the true labels
        loss = criterion(outputs, labels)

        #Print out loss
        val_loss += loss.item()
        if b % 100 == 99:    # print every 100 mini-batches
            print('Epoch / Batch [%d / %d] - Val_Loss: %.3f' %
                  (epoch + 1, b + 1, val_loss / 100))
            val_loss=0.0