Open mzweilin opened 1 year ago
modality_dispatch()
singledispatch
Perturber
Initializer
Projector
Enforcer
Composer
GradientModifier
Optimizer
Benign:
CUDA_VISIBLE_DEVICES=0 \ python -m mart \ experiment=ArmoryCarlaOverObjDet_TorchvisionFasterRCNN \ trainer=gpu \ fit=false \ +trainer.limit_test_batches=1 \ +model.load_state_dict.losses_and_detections.model=/home/weilinxu/coder/GARD-with-MART/oscar/model_zoo/carla_rgb_weights_eval6.pt
│ test_metrics/map_50 │ 0.6349384784698486
Adversarial:
CUDA_VISIBLE_DEVICES=0 \ python -m mart \ experiment=ArmoryCarlaOverObjDet_TorchvisionFasterRCNN \ trainer=gpu \ fit=false \ +trainer.limit_test_batches=1 \ +model.load_state_dict.losses_and_detections.model=/home/weilinxu/coder/GARD-with-MART/oscar/model_zoo/carla_rgb_weights_eval6.pt \ +attack@model.modules.input_adv_test=object_detection_rgb_mask_adversary \ +model.test_sequence.seq005=input_adv_test \ model.test_sequence.seq010.preprocessor=["input_adv_test"]
│ test_metrics/map_50 │ 0.4633878767490387 │
Please check all relevant options.
Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.
pytest
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
pre-commit run -a
Make sure you had fun coding 🙃
Do you think we should wait to merge this until we change MART to bound inputs between [0, 1] instead of [0, 255]? See #70.
[0, 1]
[0, 255]
What does this PR do?
modality_dispatch()
in thesingledispatch
manner.modality_dispatch()
inPerturber
forInitializer
andProjector
.Initializer
andProjector
.Enforcer
andComposer
modality-aware withmodality_dispatch()
GradientModifier
is different because of the way we handle trainable parameters.Optimizer
forGradientModifier
.Benign:
Adversarial:
Type of change
Please check all relevant options.
Testing
Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.
pytest
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
pre-commit run -a
command without errorsDid you have fun?
Make sure you had fun coding 🙃