for epoch in range(1 + epoch, NUM_EPOCHS + 1):

      for tensors in train_loader:

        input_image = tensors['input_raw']
        gt_image = tensors['target_rgb']

        iteration += 1
        batch_size = gt_image.size(0)


        if torch.cuda.is_available():
            input_image = input_image.to(device)
            gt_image = gt_image.to(device)


        network.zero_grad()

        prediction_tensor, features = network(input_image)

        loss_target_second_tensor = l1_loss(prediction_tensor, gt_image)


        loss = loss_target_second_tensor   
        loss.backward()
        opt.step()