# adv train pgd CUDA_VISIBLE_DEVICES=0 python examples/train.py --verbose 1 --color --adv_train --adv_train_random_init --validate_interval 1 --epochs 15 --lr 0.1 --lr_scheduler # adv train fgsm CUDA_VISIBLE_DEVICES=0 python examples/train.py --verbose 1 --color --adv_train --adv_train_random_init --adv_train_iter 1 --adv_train_alpha 0.0392156862745 --adv_train_eval_iter 7 --adv_train_eval_alpha 0.0078431372549 --validate_interval 1 --epochs 15 --lr 0.1 --lr_scheduler # adv train fgsm mnist CUDA_VISIBLE_DEVICES=0 python examples/train.py --verbose 1 --color --dataset mnist --adv_train --adv_train_random_init --adv_train_iter 1 --adv_train_alpha 0.375 --adv_train_eps 0.3 --adv_train_eval_iter 7 --adv_train_eval_alpha 0.1 --adv_train_eval_eps 0.3 --validate_interval 1 --epochs 15 --lr 0.1 --lr_scheduler """ # noqa: E501 import trojanvision import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() trojanvision.environ.add_argument(parser) trojanvision.datasets.add_argument(parser) trojanvision.models.add_argument(parser) trojanvision.trainer.add_argument(parser) kwargs = parser.parse_args().__dict__ env = trojanvision.environ.create(**kwargs) dataset = trojanvision.datasets.create(**kwargs) model = trojanvision.models.create(dataset=dataset, **kwargs) trainer = trojanvision.trainer.create(dataset=dataset, model=model, **kwargs) if env['verbose']: trojanvision.summary(env=env, dataset=dataset, model=model, trainer=trainer) model._train(**trainer)
from trojanvision.attacks import PoisonRandom import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() trojanvision.environ.add_argument(parser) trojanvision.datasets.add_argument(parser) trojanvision.models.add_argument(parser) trojanvision.trainer.add_argument(parser) trojanvision.attacks.add_argument(parser) kwargs = parser.parse_args().__dict__ env = trojanvision.environ.create(**kwargs) dataset = trojanvision.datasets.create(**kwargs) model = trojanvision.models.create(dataset=dataset, **kwargs) trainer = trojanvision.trainer.create(dataset=dataset, model=model, **kwargs) attack: PoisonRandom = trojanvision.attacks.create(dataset=dataset, model=model, **kwargs) if env['verbose']: trojanvision.summary(env=env, dataset=dataset, model=model, train=trainer, attack=attack) attack.load() attack.validate_fn()
import trojanvision from trojanvision.utils import superimpose import torchvision.transforms.functional as F import argparse import os if __name__ == '__main__': parser = argparse.ArgumentParser() trojanvision.environ.add_argument(parser) trojanvision.datasets.add_argument(parser) trojanvision.models.add_argument(parser) kwargs = parser.parse_args().__dict__ env = trojanvision.environ.create(**kwargs) dataset = trojanvision.datasets.create(**kwargs) model = trojanvision.models.create(dataset=dataset, **kwargs) if not os.path.exists('./result'): os.makedirs('./result') if env['verbose']: trojanvision.summary(env=env, dataset=dataset, model=model) for data in dataset.loader['valid']: _input, _label = model.get_data(data) heatmap = model.get_heatmap(_input, _label, method='saliency_map') heatmap = superimpose(heatmap, _input, alpha=0.5) for i, map in enumerate(heatmap): F.to_pil_image(heatmap[i]).save(f'./result/heatmap_{i}.jpg') break
trojanvision.environ.add_argument(parser) trojanvision.datasets.add_argument(parser) trojanvision.models.add_argument(parser) trojanvision.trainer.add_argument(parser) trojanvision.attacks.add_argument(parser) trojanvision.defenses.add_argument(parser) kwargs = parser.parse_args().__dict__ env = trojanvision.environ.create(**kwargs) dataset = trojanvision.datasets.create(**kwargs) model = trojanvision.models.create(dataset=dataset, **kwargs) trainer = trojanvision.trainer.create(dataset=dataset, model=model, **kwargs) attack = trojanvision.attacks.create(dataset=dataset, model=model, **kwargs) defense = trojanvision.defenses.create(dataset=dataset, model=model, attack=attack, **kwargs) if env['verbose']: trojanvision.summary(env=env, dataset=dataset, model=model, trainer=trainer, attack=attack, defense=defense) defense.detect(**trainer)
import trojanvision from trojanvision.attacks import BadNet import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() trojanvision.environ.add_argument(parser) trojanvision.datasets.add_argument(parser) trojanvision.models.add_argument(parser) trojanvision.marks.add_argument(parser) trojanvision.attacks.add_argument(parser) kwargs = parser.parse_args().__dict__ env = trojanvision.environ.create(**kwargs) dataset = trojanvision.datasets.create(**kwargs) model = trojanvision.models.create(dataset=dataset, **kwargs) mark = trojanvision.marks.create(dataset=dataset, **kwargs) attack: BadNet = trojanvision.attacks.create(dataset=dataset, model=model, mark=mark, **kwargs) if env['verbose']: trojanvision.summary(env=env, dataset=dataset, model=model, mark=mark, attack=attack) attack.load() attack.validate_fn()