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()
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
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()
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)
#!/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)
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] = []