A set of adversarial attacks implemented in PyTorch
Project description
🛡 torchattack - A curated list of adversarial attacks in PyTorch, with a focus on transferable black-box attacks.
pip install torchattack
Usage
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
Load a pretrained model to attack from either torchvision or timm.
from torchattack import AttackModel
# Load a model with `AttackModel`
model = AttackModel.from_pretrained(model_name='resnet50', device=device)
# `AttackModel` automatically attach the model's `transform` and `normalize` functions
transform, normalize = model.transform, model.normalize
# Additionally, to explicitly specify where to load the pretrained model from (timm or torchvision),
# prepend the model name with 'timm/' or 'tv/' respectively, or use the `from_timm` argument, e.g.
vit_b16 = AttackModel.from_pretrained(model_name='timm/vit_base_patch16_224', device=device)
inv_v3 = AttackModel.from_pretrained(model_name='tv/inception_v3', device=device)
pit_b = AttackModel.from_pretrained(model_name='pit_b_224', device=device, from_timm=True)
Initialize an attack by importing its attack class.
from torchattack import FGSM, MIFGSM
# Initialize an attack
attack = FGSM(model, normalize, device)
# Initialize an attack with extra params
attack = MIFGSM(model, normalize, device, eps=0.03, steps=10, decay=1.0)
Initialize an attack by its name with create_attack().
from torchattack import create_attack
# Initialize FGSM attack with create_attack
attack = create_attack('FGSM', model, normalize, device)
# Initialize PGD attack with specific eps with create_attack
attack = create_attack('PGD', model, normalize, device, eps=0.03)
# Initialize MI-FGSM attack with extra args with create_attack
attack_args = {'steps': 10, 'decay': 1.0}
attack = create_attack('MIFGSM', model, normalize, device, eps=0.03, attack_args=attack_args)
Check out torchattack.eval.runner for a full example.
Attacks
Development
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install deps with dev extras
python -m pip install -r requirements.txt
python -m pip install -e ".[dev]"
License
Related
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file torchattack-1.1.0.tar.gz.
File metadata
- Download URL: torchattack-1.1.0.tar.gz
- Upload date:
- Size: 46.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cf4f738221e138d003ce425e95dcd9907a301fe0f29e4e16354fa5e10a3c252
|
|
| MD5 |
b99a65186d6d79196872e21b6ad942bd
|
|
| BLAKE2b-256 |
35c6595595e3208282864aba66f1f915100b6372af29e0efd79081e8fb717167
|
Provenance
The following attestation bundles were made for torchattack-1.1.0.tar.gz:
Publisher:
pypi-publish.yml on spencerwooo/torchattack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
torchattack-1.1.0.tar.gz -
Subject digest:
4cf4f738221e138d003ce425e95dcd9907a301fe0f29e4e16354fa5e10a3c252 - Sigstore transparency entry: 154118667
- Sigstore integration time:
-
Permalink:
spencerwooo/torchattack@c1d8f5569b23f0d9135c77c1fbb2a7739b106cb0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/spencerwooo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@c1d8f5569b23f0d9135c77c1fbb2a7739b106cb0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file torchattack-1.1.0-py3-none-any.whl.
File metadata
- Download URL: torchattack-1.1.0-py3-none-any.whl
- Upload date:
- Size: 71.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a48a5ea60063ad909683fe95a35d45fc36024117ea8f4e2ce64b62809bd2642
|
|
| MD5 |
74f7a4bcc25a3c90dcb1af9683eb807f
|
|
| BLAKE2b-256 |
aac4cfa4441805b44d68c236c3ed250b75e27d5b4fa6ea6cc5f123818b64a8c7
|
Provenance
The following attestation bundles were made for torchattack-1.1.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on spencerwooo/torchattack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
torchattack-1.1.0-py3-none-any.whl -
Subject digest:
2a48a5ea60063ad909683fe95a35d45fc36024117ea8f4e2ce64b62809bd2642 - Sigstore transparency entry: 154118668
- Sigstore integration time:
-
Permalink:
spencerwooo/torchattack@c1d8f5569b23f0d9135c77c1fbb2a7739b106cb0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/spencerwooo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@c1d8f5569b23f0d9135c77c1fbb2a7739b106cb0 -
Trigger Event:
workflow_dispatch
-
Statement type: