MART icon indicating copy to clipboard operation
MART copied to clipboard

Change datamodule input to [0,1] scale

Open mzweilin opened this issue 2 years ago • 1 comments

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 transform and untransform in Adversary so we still use epsilon in integer.
  • Fix or remove preprocessor in 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=16 reports 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=2 reports 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 -a command without errors

Did you have fun?

Make sure you had fun coding 🙃

mzweilin avatar Jul 15 '23 00:07 mzweilin

@dxoigmn This PR is ready to review again. It should simplify input transforms in our existing datamodules.

mzweilin avatar Jan 12 '24 00:01 mzweilin