Example #1
0
    trojanvision.trainer.add_argument(parser)
    trojanvision.marks.add_argument(parser)
    trojanvision.attacks.add_argument(parser)
    trojanvision.defenses.add_argument(parser)
    args, unknown = parser.parse_known_args()

    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    model = trojanvision.models.create(dataset=dataset, **args.__dict__)
    trainer = trojanvision.trainer.create(dataset=dataset, model=model, **args.__dict__)
    mark = trojanvision.marks.create(dataset=dataset, **args.__dict__)
    attack: BadNet = trojanvision.attacks.create(dataset=dataset, model=model, mark=mark, **args.__dict__)
    defense: NeuralCleanse = trojanvision.defenses.create(dataset=dataset, model=model, attack=attack, **args.__dict__)

    if env['verbose']:
        summary(env=env, dataset=dataset, model=model, mark=mark, trainer=trainer, attack=attack, defense=defense)

    simple_parser = argparse.ArgumentParser()
    simple_parser.add_argument('--mark_source', default='defense')
    simple_parser.add_argument('--unlearn_mode', default='batch')
    args, unknown = simple_parser.parse_known_args()
    mark_source: str = args.mark_source
    unlearn_mode: str = args.unlearn_mode

    if mark_source == 'attack':
        mark_source = attack.name
    elif mark_source in ['defense', defense.name]:
        mark_source = defense.name

    if mark_source == attack.name:
        attack.load()
Example #2
0
import argparse
import warnings
import os
warnings.filterwarnings("ignore")

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    trojanvision.environ.add_argument(parser)
    trojanvision.datasets.add_argument(parser)
    trojanvision.models.add_argument(parser)
    args = parser.parse_args()
    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    model = trojanvision.models.create(dataset=dataset, **args.__dict__)
    if env['verbose']:
        summary(env=env, dataset=dataset, model=model)
    import torch
    import numpy as np
    from sklearn import metrics
    from trojanzoo.utils.data import dataset_to_list
    from art.estimators.classification import PyTorchClassifier  # type: ignore
    classifier = PyTorchClassifier(
        model=model._model,
        loss=model.criterion,
        input_shape=dataset.data_shape,
        nb_classes=model.num_classes,
    )
    model._validate()

    from art.attacks.inference.membership_inference import LabelOnlyDecisionBoundary as Attack  # type: ignore
Example #3
0
import warnings
warnings.filterwarnings("ignore")

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)
    args = parser.parse_args()

    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    model = trojanvision.models.create(dataset=dataset, **args.__dict__)
    mark = trojanvision.marks.create(dataset=dataset, **args.__dict__)
    attack: BadNet = trojanvision.attacks.create(dataset=dataset,
                                                 model=model,
                                                 mark=mark,
                                                 **args.__dict__)

    if env['verbose']:
        summary(env=env,
                dataset=dataset,
                model=model,
                mark=mark,
                attack=attack)
    attack.load()
    attack.validate_fn()
Example #4
0
import warnings
warnings.filterwarnings("ignore")

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)
    args = parser.parse_args()

    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    model = trojanvision.models.create(dataset=dataset, **args.__dict__)
    trainer = trojanvision.trainer.create(dataset=dataset,
                                          model=model,
                                          **args.__dict__)
    attack = trojanvision.attacks.create(dataset=dataset,
                                         model=model,
                                         **args.__dict__)

    if env['verbose']:
        summary(env=env,
                dataset=dataset,
                model=model,
                train=trainer,
                attack=attack)
    attack.attack(**trainer)
Example #5
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import trojanvision.environ
import trojanvision.datasets
import trojanvision.models
import trojanvision.trainer
from trojanvision.utils import summary
import argparse

import warnings
warnings.filterwarnings("ignore")

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)
    args = parser.parse_args()

    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    model = trojanvision.models.create(dataset=dataset, **args.__dict__)
    trainer = trojanvision.trainer.create(dataset=dataset, model=model, **args.__dict__)

    if env['verbose']:
        summary(env=env, dataset=dataset, model=model, trainer=trainer)
    model._train(**trainer)
Example #6
0
        if self.attack_model_type not in ["nn", "rf", "gb"]:
            raise ValueError(
                "Illegal value for parameter `attack_model_type`.")


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    trojanvision.environ.add_argument(parser)
    trojanvision.datasets.add_argument(parser)
    trojanvision.models.add_argument(parser)
    args = parser.parse_args()

    env = trojanvision.environ.create(**args.__dict__)
    dataset = trojanvision.datasets.create(**args.__dict__)
    if env['verbose']:
        summary(env=env, dataset=dataset)

    api = create('/data/rbp5354/nats/NATS-tss-v1_0-3ffb9-full',
                 'tss',
                 fast_mode=True,
                 verbose=False)

    # config = api.get_net_config(12, 'cifar10')
    # params = api.get_net_param(12, 'cifar10', None)

    # network = get_cell_based_tiny_net(config)
    # network.load_state_dict(next(iter(params.values())))

    f1_score_list: list[float] = []
    accuracy_list: list[float] = []
    recall_list: list[float] = []