稳健性工具
robustness的Python项目详细描述
通过pip:pip install robustness安装
阅读文档:https://robustness.readthedocs.io/en/latest/index.html
robustness是我们(学生在MadryLab)创建的包 培养、评估和探索神经网络灵活易用。 我们几乎在所有的项目中都使用它(无论它们是否涉及 是否对抗性训练!)它将成为我们许多人的依赖 即将发布的代码。使用库的一些项目包括:
- Code for “Learning Perceptually-Aligned Representations via Adversarial Robustness”(https://arxiv.org/abs/1906.00945)
- Code for “Image Synthesis with a Single (Robust) Classifier”(https://arxiv.org/abs/1906.09453)
我们 演示如何在一组演练和我们的API中使用库 参考资料。库提供的功能包括:
- 各种类型的训练和评估标准及稳健模型 使用CLI interface的数据集/架构。库还支持添加 custom datasets和model architectures。
python -m robustness.main --dataset cifar --data /path/to/cifar \ --adv-train 0 --arch resnet18 --out-dir /logs/checkpoints/dir/
- 使用robust(或standard)执行input manipulation 模型这包括做对抗性的例子,反转陈述, 功能可视化等。库提供多种优化 选项(例如,在实际/估计梯度、傅里叶/像素基础之间进行选择, 自定义损耗函数等),且易于扩展。
importtorchaschfromrobustness.datasetsimportCIFARfromrobustness.model_utilsimportmake_and_restore_modelds=CIFAR('/path/to/cifar')model,_=make_and_restore_model(arch='resnet50',dataset=ds,resume_path='/path/to/model',state_dict_path='model')model.eval()attack_kwargs={'constraint':'inf',# L-inf PGD'eps':0.05,# Epsilon constraint (L-inf norm)'step_size':0.01,# Learning rate for PGD'iterations':100,# Number of PGD steps'targeted':True# Targeted attack'custom_loss':None# Use default cross-entropy loss}_,test_loader=ds.make_loaders(workers=0,batch_size=10)im,label=next(iter(test_loader))target_label=(label+ch.randint_like(label,high=9))%10adv_out,adv_im=model(im,target_label,make_adv,**attack_kwargs)
fromrobustnessimportmodel_utils,datasets,train,defaultsfromrobustness.datasetsimportCIFAR# We use cox (http://github.com/MadryLab/cox) to log, store and analyze# results. Read more at https//cox.readthedocs.io.fromcox.utilsimportParametersimportcox.store# Hard-coded dataset, architecture, batch size, workersds=CIFAR('/path/to/cifar')m,_=model_utils.make_and_restore_model(arch='resnet50',dataset=ds)train_loader,val_loader=ds.make_loaders(batch_size=128,workers=8)# Create a cox store for loggingout_store=cox.store.Store(OUT_DIR)# Hard-coded base parameterstrain_kwargs={'out_dir':"train_out",'adv_train':1,'constraint':'2','eps':0.5,'attack_lr':1.5,'attack_steps':20}train_args=Parameters(train_kwargs)# Fill whatever parameters are missing from the defaultstrain_args=defaults.check_and_fill_args(train_args,defaults.TRAINING_ARGS,CIFAR)train_args=defaults.check_and_fill_args(train_args,defaults.PGD_ARGS,CIFAR)# Train a modeltrain.train_model(train_args,m,(train_loader,val_loader),store=out_store)
引文
如果你在你的研究中使用这个图书馆,请把它作为 如下:
@misc{robustness,title={Robustness (Python Library)},author={Logan Engstrom and Andrew Ilyas and Shibani Santurkar and Dimitris Tsipras},year={2019},url={https://github.com/MadryLab/robustness}}
(您使用过这个包并发现它很有用吗?告诉我们!)。