Adding support for pyramids
This PR adds the support for pyramids to address #125. This modifies the HCSDataloader()
@edyoshikun thanks - this implementation seems backward compatible with previous configs for training and prediction for virtual staining and contrastive learning tasks. Can you check with the configs we are sharing with the preprint if they need any change (e.g., explicitly setting the scale = 0)?
@mattersoflight we don't need to change the previous configs because by default the Dataloader will be set to "0" the highest resolution if the parameter is not provided in the config.
For the preprint, I thought we were pointing them to viscy=0.2.0, which may or may not have this PR. If we are adding this PR as part of 0.2.0, I'll make the changes.
I've tested the basic HCSDataModule with multiple resolution levels, and it's working well. I can load random patches at any resolution level in my pyramid. Thanks @edyoshikun.
@edyoshikun I'm happy to leave this as a branch while we test this out end to end during the course.
The code changes look good, but we should test that training actually works before merging.