Hi Mr. Oraware!



 TheOraware:

                for data, target in train_loader:
...
                    loss = torch.sqrt(criterion(output, target)) # as i need RMSLE
...
        for valid_data, valid_target in valid_loader:
...
            valid_loss = criterion(valid_output,valid_target)
...

If it is then why my validation loss is way lesser than training loss


The bulk of the discrepancy is because you have sqrt() in your
training loss and not in your validation loss.  (Even accounting for
this, your training loss is still perhaps about 20% greater than you
validation loss, but this is easier to hand-wave away with more
“hard” samples in your training set or normalization vagaries, etc.)
Best.
K. Frank