CTRAIN is an unified, modular and comprehensive package for the training and evaluation of certified training techniques.
Project description
CTRAIN
CTRAIN is a unified, modular and comprehensive package for certifiably training neural networks and evaluating their robustness.
Overview
CTRAIN integrates multiple state-of-the-art certified training approaches, which are:
- Interval Bound Propagation (IBP) (Gowal et al., 2018 with the Improvements of Shi et al., 2021)
- CROWN-IBP (Zhang et al., 2020)
- SABR (Müller et al., 2023)
- TAPS (Mao et al., 2023)
- STAPS (combination of SABR and TAPS, Mao et al., 2023)
- MTL-IBP (De Palma et al., 2023)
Furthermore, CTRAIN enables easy evaluation of the adversarial and certified robustness of a given neural network, using the following methods:
-
Adversarial Robustness
- PGD (Madry et al., 2018)
-
Certified Robustness (Incomplete Verification)
- IBP (Gowal et al., 2018)
- CROWN-IBP (Zhang et al., 2020)
- CROWN (Zhang et al., 2018)
-
Certified Robustness (Complete Verification)
- α,β-CROWN (Xu et al., 2020, Wang et al., 2021)
Key Features
CTRAIN has the goal of providing an unified, comprehensive, accessible and flexible framework for certified training. Key features include:
- Standardised, modular and highly-configurable implementations of popular and performant certified training methods based on the
auto_LiRPAlibrary (Xu et al., 2020) - Unified and accessible interface through model wrappers
- Based on PyTorch for easy integration into common machine learning pipelines
- Seamless integration of sophisticated hyperparameter optimisation using SMAC3 (Lindauer et al., 2022)
- Comprehensive evaluation tools for adversarial and certified robustness
- Support for both incomplete and complete verification methods, including the state-of-the-art complete verification system α,β-CROWN
- Detailed documentation with API reference, setup guide, and usage examples
- Open-source with a permissive MIT license
- Active development and maintenance by the Chair for Artificial Intelligence Methodology at RWTH Aachen University
Installation and Quick Start
First, install CTRAIN using pip:
pip install CTRAIN
Or, to setup the package for development purposes, run:
git submodule init
git submodule update
pip install --no-deps git+https://github.com/KaidiXu/onnx2pytorch@8447c42c3192dad383e5598edc74dddac5706ee2
pip install --no-deps git+https://github.com/Verified-Intelligence/auto_LiRPA.git@cf0169ce6bfb4fddd82cfff5c259c162a23ad03c
pip install -e ".[dev]"
Then, you can train and evaluate the standard CNN7 architecture proposed by Shi et al. on the CIFAR-10 dataset using the IBP certified training technique in 12 lines of code:
from CTRAIN.model_definitions import CNN7_Shi
from CTRAIN.data_loaders import load_cifar10
from CTRAIN.model_wrappers import ShiIBPModelWrapper
train_loader, test_loader = load_cifar10(val_split=False)
in_shape = [3, 32, 32]
model = CNN7_Shi(in_shape=in_shape)
wrapped_model = ShiIBPModelWrapper(model=model, input_shape=in_shape, eps=2/255, num_epochs=160)
wrapped_model.train_model(train_loader)
std_acc, cert_acc, adv_acc = wrapped_model.evaluate(test_loader)
Project Structure
CTRAIN/
├── attacks/ # Implementation of attacks
├── bound/ # Bound computation approaches
├── complete_verification/ # Complete verification
├── data_loaders/ # Dataset loading utilities
├── eval/ # (Incomplete) Evaluation functionality
├── model_definitions/ # Neural network architectures
├── model_wrappers/ # Model wrappers for different approaches
├── train/ # Robust/Certified Training implementations
├── util/ # Utility functions
└── verification_systems/ # External verification tools
Documentation
Documentation is available in the docs directory, including:
- API Reference
- Setup Guide
- Usage Examples
License
This project is licensed under the MIT License.
Maintainers
This project was developed at the Chair for Artificial Intelligence Methodology at RWTH Aachen University by Konstantin Kaulen under the supervision of Prof. Holger H. Hoos. Konstantin Kaulen is the current core-maintainer of the project.
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Acknowledgements
This project incorporates the α,β-CROWN verifier which is developed by a multi-institutional team led by Prof. Huan Zhang. The α,β-CROWN components are licensed under the BSD 3-Clause license.
Furthermore, CTRAIN depends heavily on the auto_LiRPA library, which is developed by the same team and also licensed under the BSD 3-Clause License.
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
File details
Details for the file ctrain-0.3.0.tar.gz.
File metadata
- Download URL: ctrain-0.3.0.tar.gz
- Upload date:
- Size: 298.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f6e3aac68ffc9c661f06b76bf8d7c9b8438d915c37cfa40fac3fb2039ef9792
|
|
| MD5 |
bccfc29b31db45e816675b168110eef2
|
|
| BLAKE2b-256 |
b4dad7e2668ee075d08e60c855200f6b2c93d4953890cec53438ef8387edf3e7
|
Provenance
The following attestation bundles were made for ctrain-0.3.0.tar.gz:
Publisher:
publish_pypi.yml on ADA-research/CTRAIN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ctrain-0.3.0.tar.gz -
Subject digest:
3f6e3aac68ffc9c661f06b76bf8d7c9b8438d915c37cfa40fac3fb2039ef9792 - Sigstore transparency entry: 183384962
- Sigstore integration time:
-
Permalink:
ADA-research/CTRAIN@d978948f5545a96341a48a422234601312360284 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ADA-research
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_pypi.yml@d978948f5545a96341a48a422234601312360284 -
Trigger Event:
push
-
Statement type: