You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
to get total average valid loss you divide by len(valid_loader) but for avaerage test loss you divide by len(test_loader.dataset). This does not seems correct. And also you are multiplying the loss with batch_size in test runs, but you dont do it for validation. Why?
The text was updated successfully, but these errors were encountered:
Validation Loss:
Per Batch Averaging: During validation, you might be interested in how well the model is performing per batch, especially if batch sizes are consistent. Thus, dividing by the number of batches is sufficient.
Simplification: Assuming consistent batch sizes, the validation loss calculation can be simplified by dividing by the number of batches.
Test Loss:
Per Sample Averaging: For the test set, it's common to report the loss per sample, giving a more precise evaluation of the model's performance on each data point.
Accuracy: Multiplying by the batch size ensures that the total loss reflects all samples accurately, especially if the last batch has fewer samples.
sample snippet for consistent approach:-
validation loss:-
total_valid_loss = 0.0
total_valid_samples = 0
for data in valid_loader:
inputs, labels = data
outputs = model(inputs)
loss = criterion(outputs, labels)
total_valid_loss += loss.item() * inputs.size(0) # Multiply by batch size
total_valid_samples += inputs.size(0)
average_valid_loss = total_valid_loss / total_valid_samples # Divide by total samples
Test Loss:-
total_test_loss = 0.0
total_test_samples = 0
for data in test_loader:
inputs, labels = data
outputs = model(inputs)
loss = criterion(outputs, labels)
total_test_loss += loss.item() * inputs.size(0) # Multiply by batch size
total_test_samples += inputs.size(0)
average_test_loss = total_test_loss / total_test_samples # Divide by total samples
to get total average valid loss you divide by len(valid_loader) but for avaerage test loss you divide by len(test_loader.dataset). This does not seems correct. And also you are multiplying the loss with batch_size in test runs, but you dont do it for validation. Why?
The text was updated successfully, but these errors were encountered: