示例#1
0
# 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)
示例#2
0
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()
示例#3
0
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
示例#4
0
    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)
示例#5
0
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()