MART
MART copied to clipboard
Change datamodule input to [0,1] scale
What does this PR do?
This PR makes datamodule give input in the [0,1] scale, so that it is compatible with many other existing tools.
- Remove [0,1]->[0,255] transforms in Datamodule.
- Add
transformanduntransforminAdversaryso we still use epsilon in integer. - Fix or remove
preprocessorin models that were used for transforming input from [0,255].
Type of change
Please check all relevant options.
- [x] Improvement (non-breaking)
- [ ] Bug fix (non-breaking)
- [ ] New feature (non-breaking)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
Testing
Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.
- [x]
pytest - [x]
CUDA_VISIBLE_DEVICES=0 python -m mart experiment=CIFAR10_CNN_Adv trainer=gpu trainer.precision=16reports 70% (21 sec/epoch). - [x]
CUDA_VISIBLE_DEVICES=0,1 python -m mart experiment=CIFAR10_CNN_Adv trainer=ddp trainer.precision=16 trainer.devices=2 model.optimizer.lr=0.2 trainer.max_steps=2925 datamodule.ims_per_batch=256 datamodule.world_size=2reports 70% (14 sec/epoch).
Before submitting
- [x] The title is self-explanatory and the description concisely explains the PR
- [x] My PR does only one thing, instead of bundling different changes together
- [ ] I list all the breaking changes introduced by this pull request
- [x] I have commented my code
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] I have run pre-commit hooks with
pre-commit run -acommand without errors
Did you have fun?
Make sure you had fun coding 🙃
@dxoigmn This PR is ready to review again. It should simplify input transforms in our existing datamodules.