Skip to content

Logging in on_test_epoch_end with multiple dataloaders #20885

@pschroeppel

Description

@pschroeppel

Bug description

Hello,
I am running test() with multiple dataloaders and do the logging in on_test_epoch_end(). I basically follow #16520 regarding the "Example with two DataLoaders".

In my case, I log different metrics for the different dataloaders (because each dataloader corresponds to a set set and I directly put the test set name into the logged name). For example:

  • dataloader 1 logs clevr3d_cropped/ari
  • dataloader 2 logs clevr3d/ari

However, the final table that is printed by PyTorch-Lightning, shows each logged value duplicated for each of the two dataloaders, which is incorrect:

        Test metric               DataLoader 0               DataLoader 1
─────────────────────────────
     clevr3d/ari         0.6213954091072083         0.6213954091072083
 clevr3d_cropped/ari      0.5558694005012512         0.5558694005012512
─────────────────────────────

Correctly, the table should look as follows:

        Test metric               DataLoader 0               DataLoader 1
─────────────────────────────
     clevr3d/ari         0.6213954091072083                -
 clevr3d_cropped/ari           -                          0.5558694005012512
─────────────────────────────

I think the problem is that self.log() does not know for which dataloader the log is and therefore logs for both dataloaders.

I also tried appending the dataloader index in the log, as described in the example mentioned above, but this didn't change anything.

My question now is: is this expected behaviour, or is it a bug, or am I using PyTorch-Lightning incorrectly?

Thanks and best,
Philipp

What version are you seeing the problem on?

v2.5

Reproduced in studio

No response

How to reproduce the bug

Error messages and logs

# Error messages and logs here please

Environment

Current environment
#- PyTorch Lightning Version (e.g., 2.5.0):
#- PyTorch Version (e.g., 2.5):
#- Python version (e.g., 3.12):
#- OS (e.g., Linux):
#- CUDA/cuDNN version:
#- GPU models and configuration:
#- How you installed Lightning(`conda`, `pip`, source):

More info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions