pip install foolboxO FoolBox é testado com o Python 3.8 e mais recente - no entanto, provavelmente também funcionará com a versão 3.6 - 3.8. Para usá -lo com Pytorch, Tensorflow ou Jax, a respectiva estrutura precisa ser instalada separadamente. Essas estruturas não são declaradas como dependências, porque nem todo mundo quer usar e, assim, instalar todas elas e porque alguns desses pacotes têm construções diferentes para diferentes arquiteturas e versões CUDA. Além disso, todas as dependências essenciais são instaladas automaticamente.
Você pode ver as versões que usamos atualmente para testes na seção de compatibilidade abaixo, mas as versões mais recentes devem, em geral, funcionar.
import foolbox as fb
model = ...
fmodel = fb . PyTorchModel ( model , bounds = ( 0 , 1 ))
attack = fb . attacks . LinfPGD ()
epsilons = [ 0.0 , 0.001 , 0.01 , 0.03 , 0.1 , 0.3 , 0.5 , 1.0 ]
_ , advs , success = attack ( fmodel , images , labels , epsilons = epsilons )Mais exemplos podem ser encontrados na pasta Exemplos, por exemplo, um exemplo completo Resnet-18.
Se você usa o FoolBox para o seu trabalho, cite nosso papel Joss no Foolbox Native (ou seja, Foolbox 3.0) e nosso artigo da Workshop ICML no Foolbox usando as seguintes entradas Bibtex:
@Article {Rauber2017FoolBoxNative,
doi = {10.21105/joss.02607},
url = {https://doi.org/10.21105/joss.02607},
ano = {2020},
editor = {The Open Journal},
volume = {5},
número = {53},
páginas = {2607},
autor = {Jonas Rauber e Roland Zimmermann e Matthias Bethge e Wieland Brendel},
Title = {FoolBox Nativo: Ataques adversários rápidos para comparar a robustez dos modelos de aprendizado de máquina em Pytorch, Tensorflow e Jax},
Journal = {Journal of Open Source Software}
}
@InProedings {Rauber2017FoolBox,
Title = {FoolBox: uma caixa de ferramentas Python para comparar a robustez dos modelos de aprendizado de máquina},
autor = {Rauber, Jonas e Brendel, Wieland e Bethge, Matthias},
BookTitle = {Aprendizado de máquina confiável no Wild Workshop, 34ª Conferência Internacional sobre Machine Learning},
ano = {2017},
url = {http://arxiv.org/abs/1707.04131},
}
Congratulamo -nos com contribuições de todo tipo, por favor, dê uma olhada nas nossas diretrizes de desenvolvimento. Em particular, você é convidado a contribuir com novos ataques adversários. Se você deseja ajudar, também pode dar uma olhada nos problemas marcados com as contribuições são bem -vindas.
Se você tiver uma pergunta ou precisar de ajuda, sinta -se à vontade para abrir um problema no GitHub. Quando as discussões do Github se tornarem disponíveis ao público, mudaremos para isso.
O FoolBox 3.0 é muito mais rápido que o FoolBox 1 e 2. Uma comparação básica de desempenho pode ser encontrada na pasta de desempenho.
Atualmente, testamos com as seguintes versões: