Skip to main content

SecML-Torch Library

Project description

SecML-Torch: A Library for Robustness Evaluation of Deep Learning Models

pypi py_versions build_status coverage docs

SecML-Torch (SecMLT) is an open-source Python library designed to facilitate research in the area of Adversarial Machine Learning (AML) and robustness evaluation. The library provides a simple yet powerful interface for generating various types of adversarial examples, as well as tools for evaluating the robustness of machine learning models against such attacks.

Installation

You can install SecMLT via pip:

pip install secml-torch

This will install the core version of SecMLT, including only the main functionalities such as native implementation of attacks and PyTorch wrappers.

Install with extras

The library can be installed together with other plugins that enable further functionalities.

  • Foolbox, a Python toolbox to create adversarial examples.
  • Tensorboard, a visualization toolkit for machine learning experimentation.

Install one or more extras with the command:

pip install secml-torch[foolbox,tensorboard]

Key Features

  • Built for Deep Learning: SecMLT is compatible with the popular machine learning framework PyTorch.
  • Various types of adversarial attacks: SecMLT includes support for a wide range of attack methods (evasion, poisoning, ...) such as different implementations imported from popular AML libraries (Foolbox, Adversarial Library).
  • Customizable attacks: SecMLT offers several levels of analysis for the models, including modular implementations of existing attacks to extend with different loss functions, optimizers, and more.
  • Attack debugging: Built-in debugging of evaluations by logging events and metrics along the attack runs (even on Tensorboard).

Usage

Here's a brief example of using SecMLT to evaluate the robustness of a trained classifier:

from secmlt.adv.evasion.pgd import PGD
from secmlt.metrics.classification import Accuracy
from secmlt.models.pytorch.base_pytorch_nn import BasePytorchClassifier


model = ...
torch_data_loader = ...

# Wrap model
model = BasePytorchClassifier(model)

# create and run attack
attack = PGD(
    perturbation_model="l2",
    epsilon=0.4,
    num_steps=100,
    step_size=0.01,
)

adversarial_loader = attack(model, torch_data_loader)

# Test accuracy on adversarial examples
robust_accuracy = Accuracy()(model, adversarial_loader)

For more detailed usage instructions and examples, please refer to the official documentation or to the examples.

Contributing

We welcome contributions from the research community to expand the library's capabilities or add new features. If you would like to contribute to SecMLT, please follow our contribution guidelines.

Contributors

Maura
maurapintor
zangobot/
zangobot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secml-torch-0.5.2.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

secml_torch-0.5.2-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file secml-torch-0.5.2.tar.gz.

File metadata

  • Download URL: secml-torch-0.5.2.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for secml-torch-0.5.2.tar.gz
Algorithm Hash digest
SHA256 c5694efb8a19da4de3bcdf30162f8cc5f7b1e82c5154d4a67ed97cd040ee6d88
MD5 755ed3e877e7c09e74524a683d81f1e1
BLAKE2b-256 9488c626f341a87c012033eba193a7637cdaeb8528a7feac54c2557b92ebafc2

See more details on using hashes here.

File details

Details for the file secml_torch-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: secml_torch-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for secml_torch-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 da0cc3fea308ddb45f0f4f5ae0ed9d580644404fae19d91628b5ab7632291f1e
MD5 e8c0b41e2a54cda816d487f9b3aed8b6
BLAKE2b-256 2e113ef798a19d445ad0d58ed16abae15e058dc3c98ed425f0d206a7f070639d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page