Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
robustness — Entraînez, évaluez et explorez des réseaux de neurones avec des outils intégrés de robustesse face aux attaques adversariales, notamment les attaques PGD, l'entraînement adversarial et des modèles pré-entraînés robustes pour la recherche en vision. | Kitploit
Outils/GitHubGitHub/madrylab/robustness
Outils DéfensifsApprentissage AutomatiqueSécurité de l'IAAttaque Adversariale
GitHubmadrylab/robustness

robustness

Entraînez, évaluez et explorez des réseaux de neurones avec des outils intégrés de robustesse face aux attaques adversariales, notamment les attaques PGD, l'entraînement adversarial et des modèles pré-entraînés robustes pour la recherche en vision.

Voir le dépôt
946179il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

package robustness

Installez via pip : pip install robustness

Lisez la documentation : https://robustness.readthedocs.io/en/latest/index.html

robustness est un package que nous (étudiants du MadryLab <http://madry-lab.ml>_) avons créé pour rendre l'entraînement, l'évaluation et l'exploration de réseaux de neurones flexibles et simples. Nous l'utilisons dans presque tous nos projets (qu'ils impliquent ou non de l'entraînement adversarial !) et il sera une dépendance dans beaucoup de nos futures versions de code. Quelques projets utilisant la bibliothèque incluent :

  • Code pour "Learning Perceptually-Aligned Representations via Adversarial Robustness" <https://github.com/MadryLab/robust_representations>_ (https://arxiv.org/abs/1906.00945)
  • Code pour "Image Synthesis with a Single (Robust) Classifier" <https://github.com/MadryLab/robustness_applications>_ (https://arxiv.org/abs/1906.09453)
  • Code pour "Do Adversarially Robust ImageNet Models Transfer Better?" <https://github.com/microsoft/robust-models-transfer>_ (https://arxiv.org/abs/2007.08489)
  • Code pour "BREEDS: Benchmarks for Subpopulation Shift" <https://github.com/MadryLab/BREEDS-Benchmarks>_ (https://arxiv.org/abs/2008.04859)
  • Code pour "Certified Patch Robustness via Smoothed Vision Transformers." <https://github.com/MadryLab/smoothed-vit>_ (https://arxiv.org/abs/2110.07719)
  • Code pour "Unadversarial Examples: Designing Objects for Robust Vision." <https://github.com/microsoft/unadversarial>_ (https://arxiv.org/abs/2012.12235)

Nous démontrons comment utiliser la bibliothèque dans une série de tutoriels et notre référence d'API. Les fonctionnalités fournies par la bibliothèque incluent :

  • Entraîner et évaluer des modèles standards et robustes pour une variété de jeux de données/architectures en utilisant une interface CLI <https://robustness.readthedocs.io/en/latest/example_usage/cli_usage.html>. La bibliothèque prend également en charge l'ajout de jeux de données personnalisés <https://robustness.readthedocs.io/en/latest/example_usage/training_lib_part_2.html#training-on-custom-datasets> et des architectures de modèles <https://robustness.readthedocs.io/en/latest/example_usage/training_lib_part_2.html#training-with-custom-architectures>_.

.. code-block:: bash

python -m robustness.main --dataset cifar --data /path/to/cifar
--adv-train 0 --arch resnet18 --out-dir /logs/checkpoints/dir/

  • Effectuer des manipulations d'entrée <https://robustness.readthedocs.io/en/latest/example_usage/input_space_manipulation.html>_ à l'aide de modèles robustes (ou standards)---cela inclut la génération d'exemples adversariaux, l'inversion de représentations, la visualisation de caractéristiques, etc. La bibliothèque offre une variété d'options d'optimisation (par exemple le choix entre gradients réels/estimés, base de Fourier/pixels, fonctions de perte personnalisées, etc.) et est facilement extensible.

.. code-block:: python

import torch as ch from robustness.datasets import CIFAR from robustness.model_utils import make_and_restore_model

ds = 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)) % 10 adv_out, adv_im = model(im, target_label, make_adv, **attack_kwargs)

  • Importer robustness en tant que package, ce qui permet d'entraîner facilement des réseaux de neurones avec le support de fonctions de perte personnalisées, la journalisation, le chargement de données, et plus encore ! Une bonne introduction se trouve dans notre tutoriel en deux parties (Partie 1 <https://robustness.readthedocs.io/en/latest/example_usage/training_lib_part_1.html>, Partie 2 <https://robustness.readthedocs.io/en/latest/example_usage/training_lib_part_2.html>).

.. code-block:: python

from robustness import model_utils, datasets, train, defaults from robustness.datasets import CIFAR

We use cox (http://github.com/MadryLab/cox) to log, store and analyze

results. Read more at https//cox.readthedocs.io.

from cox.utils import Parameters import cox.store

Hard-coded dataset, architecture, batch size, workers

ds = 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 logging

out_store = cox.store.Store(OUT_DIR)

Hard-coded base parameters

train_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 defaults

train_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 model

train.train_model(train_args, m, (train_loader, val_loader), store=out_store)

Remarque : robustness nécessite que PyTorch soit installé avec le support CUDA.

Modèles pré-entraînés

En plus du code d'entraînement, nous publions un certain nombre de modèles pré-entraînés pour différents jeux de données, normes et valeurs ε-train. Cette liste sera mise à jour au fur et à mesure que nous publions des modèles supplémentaires ou améliorés. Veuillez citer cette bibliothèque (voir l'entrée bibtex ci-dessous) si vous utilisez ces modèles dans vos recherches.

Pour chaque combinaison (modèle, ε-test), nous évaluons PGD en 20 étapes et en 100 étapes avec un pas de 2.5 * ε-test / num_steps. Comme ces deux précisions sont assez proches l'une de l'autre, nous ne considérons pas davantage d'étapes de PGD. Pour chaque valeur de ε-test, nous mettons en gras la meilleure précision robuste obtenue sur les différents ε-train.

Remarque #1 : Nous n'avons effectué aucun réglage d'hyperparamètres et avons simplement utilisé les mêmes hyperparamètres que pour l'entraînement standard. Il est probable qu'explorer différents hyperparamètres d'entraînement augmentera ces précisions robustes de quelques points de pourcentage.

Remarque #2 : Les fichiers de point de contrôle (.pt) PyTorch ci-dessous ont été enregistrés avec les versions suivantes de PyTorch et Dill :

.. code-block::

torch==1.1.0 dill==0.2.9

CIFAR10 norme L2 (ResNet50) :

  • ε = 0.0 <https://www.dropbox.com/s/yhpp4yws7sgi6lj/cifar_nat.pt?dl=0>_ (entraînement standard)
  • ε = 0.25 <https://www.dropbox.com/s/2qsp7pt6t7uo71w/cifar_l2_0_25.pt?dl=0>_
  • ε = 0.5 <https://www.dropbox.com/s/1zazwjfzee7c8i4/cifar_l2_0_5.pt?dl=0>_
  • ε = 1.0 <https://www.dropbox.com/s/s2x7thisiqxz095/cifar_l2_1_0.pt?dl=0>_

+--------------+----------------+-----------------+---------------------+---------------------+ | CIFAR10 L2-robust accuracy | +--------------+----------------+-----------------+---------------------+---------------------+ | | ε-train | +--------------+----------------+-----------------+---------------------+---------------------+ | ε-test | 0.0 | 0.25 | 0.5 | 1.0 | +==============+================+=================+=====================+=====================+ | 0.0 | 95.25% / - | 92.77% / - | 90.83% / - | 81.62% / - | +--------------+----------------+-----------------+---------------------+---------------------+ | 0.25 | 8.66% / 7.34% | 81.21% / 81.19% | 82.34% / 82.31% | 75.53% / 75.53% | +--------------+----------------+-----------------+---------------------+---------------------+ | 0.5 | 0.28% / 0.14% | 62.30% / 62.13% | 70.17% / 70.11% | 68.63% / 68.61% | +--------------+----------------+-----------------+---------------------+---------------------+ | 1.0 | 0.00% / 0.00% | 21.18% / 20.66% | 40.47% / 40.22% | 52.72% / 52.61% | +--------------+----------------+-----------------+---------------------+---------------------+ | 2.0 | 0.00% / 0.00% | 0.58% / 0.46% | 5.23% / 4.97% | 18.59% / 18.05% | +--------------+----------------+-----------------+---------------------+---------------------+

CIFAR10 norme Linf (ResNet50) :

  • ε = 0.0 (pré-entraîné PyTorch)
  • ε = 8/255 <https://www.dropbox.com/s/c9qlt1lbdnu9tlo/cifar_linf_8.pt?dl=0>_

+--------------+-----------------+---------------------+ | CIFAR10 Linf-robust accuracy | +--------------+-----------------+---------------------+ | | ε-train | +--------------+-----------------+---------------------+ | ε-test | 0 / 255 | 8 / 255 | +==============+=================+=====================+ | 0 / 255 | 95.25% / - | 87.03% / - | +--------------+-----------------+---------------------+ | 8 / 255 | 0.00% / 0.00% | 53.49% / 53.29% | +--------------+-----------------+---------------------+ | 16 / 255 | 0.00% / 0.00% | 18.13% / 17.62% | +--------------+-----------------+---------------------+

ImageNet norme L2 (ResNet50) :

  • ε = 0.0 (pré-entraîné PyTorch)
  • ε = 3.0 <https://www.dropbox.com/s/knf4uimlqsi1yz8/imagenet_l2_3_0.pt?dl=0>_

+--------------+-----------------+---------------------+ | ImageNet L2-robust accuracy | +--------------+-----------------+---------------------+ | | ε-train | +--------------+-----------------+---------------------+ | ε-test | 0.0 | 3.0 | +==============+=================+=====================+ | 0.0 | 76.13% / - | 57.90% / - | +--------------+-----------------+---------------------+ | 0.5 | 3.35% / 2.98% | 54.42% / 54.42% | +--------------+-----------------+---------------------+ | 1.0 | 0.44% / 0.37% | 50.67% / 50.67% | +--------------+-----------------+---------------------+ | 2.0 | 0.16% / 0.14% | 43.04% / 43.02% | +--------------+-----------------+---------------------+ | 3.0 | 0.13% / 0.12% | 35.16% / 35.09% | +--------------+-----------------+---------------------+

ImageNet norme Linf (ResNet50) :

  • ε = 0.0 (pré-entraîné PyTorch)
  • ε = 4 / 255 <https://www.dropbox.com/s/axfuary2w1cnyrg/imagenet_linf_4.pt?dl=0>_
  • ε = 8 / 255 <https://www.dropbox.com/s/yxn15a9zklz3s8q/imagenet_linf_8.pt?dl=0>_

+--------------+-----------------+---------------------+---------------------+ | ImageNet Linf-robust accuracy | +--------------+-----------------+---------------------+---------------------+ | | ε-train | +--------------+-----------------+---------------------+---------------------+ | ε-test | 0.0 | 4 / 255 | 8 / 255 | +==============+=================+=====================+=====================+ | 0 / 255 | 76.13% / - | 62.42% / - | 47.91% / - | +--------------+-----------------+---------------------+---------------------+ | 4 / 255 | 0.04% / 0.03% | 33.58% / 33.38% | 33.06% / 33.03% | +--------------+-----------------+---------------------+---------------------+ | 8 / 255 | 0.01% / 0.01% | 13.13% / 12.73% | 19.63% / 19.52% | +--------------+-----------------+---------------------+---------------------+ | 16 / 255 | 0.01% / 0.01% | 1.53% / 1.37% | 5.00% / 4.82% | +--------------+-----------------+---------------------+---------------------+

Citation

Si vous utilisez cette bibliothèque dans vos recherches, citez-la comme suit :

.. code-block:: bibtex

@misc{robustness, title={Robustness (Python Library)}, author={Logan Engstrom and Andrew Ilyas and Hadi Salman and Shibani Santurkar and Dimitris Tsipras}, year={2019}, url={https://github.com/MadryLab/robustness} }

(Avez-vous utilisé le package et l'avez-vous trouvé utile ? Faites-nous savoir !).

Mainteneurs

  • Andrew Ilyas <https://twitter.com/andrew_ilyas>_
  • Logan Engstrom <https://twitter.com/logan_engstrom>_
  • Shibani Santurkar <https://twitter.com/ShibaniSan>_
  • Dimitris Tsipras <https://twitter.com/tsiprasd>_
  • Hadi Salman <https://twitter.com/hadisalmanX>_

Contributeurs/Commiters '''''''''''''''''''''''

  • Voir ici <https://github.com/MadryLab/robustness/pulse>_
Télécharger l’outil