pip install foolboxFoolbox se prueba con Python 3.8 y más nuevo; sin embargo, lo más probable es que también funcione con la versión 3.6 - 3.8. Para usarlo con Pytorch, TensorFlow o Jax, el marco respectivo debe instalarse por separado. Estos marcos no se declaran como dependencias porque no todos quieren usarlos y, por lo tanto, instalarlos todos y porque algunos de estos paquetes tienen diferentes compilaciones para diferentes arquitecturas y versiones CUDA. Además de eso, todas las dependencias esenciales se instalan automáticamente.
Puede ver las versiones que usamos actualmente para probar en la sección de compatibilidad a continuación, pero en general se espera que las versiones más nuevas funcionen.
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 )Se pueden encontrar más ejemplos en la carpeta de ejemplos, por ejemplo, un ejemplo completo de resnet-18.
Si usa Foolbox para su trabajo, cita nuestro papel de Joss en Foolbox Native (es decir, Foolbox 3.0) y nuestro documento de taller ICML sobre Foolbox usando las siguientes entradas de Bibtex:
@article {rauber2017foolboxnative,
doi = {10.21105/joss.02607},
url = {https://doi.org/10.21105/Joss.02607},
año = {2020},
editor = {The Open Journal},
volumen = {5},
número = {53},
páginas = {2607},
Autor = {Jonas Rauber y Roland Zimmermann y Matthias Bethge y Wieland Brendel},
title = {Foolbox nativo: ataques adversos rápidos para comparar la robustez de los modelos de aprendizaje automático en Pytorch, TensorFlow y Jax},
Journal = {Journal of Open Source Software}
}
@InProcedings {rauber2017foolbox,
title = {Foolbox: una caja de herramientas de Python para comparar la robustez de los modelos de aprendizaje automático},
Autor = {Rauber, Jonas y Brendel, Wieland y Bethge, Matthias},
booktitle = {aprendizaje automático confiable en el taller salvaje, 34a conferencia internacional sobre aprendizaje automático},
año = {2017},
url = {http://arxiv.org/abs/1707.04131},
}
Agradecemos las contribuciones de todo tipo, eche un vistazo a nuestras pautas de desarrollo. En particular, se le invita a contribuir con nuevos ataques adversos. Si desea ayudar, también puede echar un vistazo a los problemas que están marcados con contribuciones bienvenidas.
Si tiene una pregunta o necesita ayuda, no dude en abrir un problema en GitHub. Una vez que las discusiones de Github sean disponibles públicamente, cambiaremos a eso.
Foolbox 3.0 es mucho más rápido que Foolbox 1 y 2. Se puede encontrar una comparación de rendimiento básica en la carpeta de rendimiento.
Actualmente probamos con las siguientes versiones: