engine package
Submodules
engine.adversarial_dataset module
Armory engine to create adversarial datasets
- class engine.adversarial_dataset.AdversarialDatasetEngine(chain: Chain, inputs_key: str, targets_key: str, inputs_spec: DataSpecification | None = None, targets_spec: DataSpecification | None = None, output_dir: str | None = None, adapter: Callable[[Mapping[str, Any]], Mapping[str, Any]] | None = None, features: datasets.Features | None = None, num_batches: int | None = None, profiler: Profiler | None = None)
Bases:
objectArmory engine to create adversarial datasets. An adversarial dataset has an adversarial attack already applied to every sample in the dataset.
Example:
from charmory.engine import AdversarialDatasetEngine # assuming `task` has been defined using a `charmory.tasks` class engine = AdversarialDatasetEngine( task, output_dir="dataset_output_dir", ) engine.generate() # to load the generated dataset... import datasets ds = datasets.load_from_disk("dataset_output_dir")
- generate() datasets.Dataset
Create the adversarial dataset
- Returns:
Adversarial dataset
- Return type:
datasets.Dataset
- engine.adversarial_dataset.SampleAdapter
An adapter for generated samples. The input argument and return types are a dictionary of column names to values for a single sample.
alias of
Callable[[Mapping[str,Any]],Mapping[str,Any]]
engine.evaluation module
Armory engine to perform model robustness evaluations
- class engine.evaluation.EvaluationEngine(evaluation: Evaluation, profiler: Profiler | None = None, sysconfig: SysConfig | None = None, **kwargs)
Bases:
objectArmory engine to perform model robustness evaluations.
Example:
from charmory.engine import EvaluationEngine # assuming `evaluation` has been defined using `charmory.evaluation.Evaluation` engine = EvaluationEngine(evaluation) results = engine.run()
- run(verbose: bool = False) EvaluationResults | None
Perform the evaluation
- Parameters:
verbose (bool, optional) – Verbose output, defaults to False
- Returns:
Evaluation results if running on the rank zero node
- Return type:
Optional[EvaluationResults]
engine.evaluation_module module
Armory lightning module to perform evaluations
- class engine.evaluation_module.EvaluationModule(chain: Chain, profiler: Profiler)
Bases:
LightningModuleArmory lightning module to perform an evaluation on a single evaluation chain
- class MetricsDict(modules: Mapping[str, Module] | None = None)
Bases:
ModuleDict- compute() Mapping[str, Tensor]
Compute
- Returns:
Mapping[str, torch.Tensor]
- Return type:
Mapping[str, torch.Tensor]
- reset() None
Reset
- apply_perturbations(batch: Batch)
Applies the chain’s perturbations to the batch to produce the perturbed data to be given to the model
- Parameters:
batch (Batch) – Batch
- on_test_epoch_end() None
Logs all metric results
- on_test_epoch_start() None
Resets all metrics
- record_metrics()
Record metrics
- setup(stage: str) None
Sets up the exporters
- Parameters:
stage (str) – Stage
engine.optimization module
Armory engine to perform adversarial attack optimization
engine.optimization_module module
Armory lightning module to perform attack optimizations
- class engine.optimization_module.OptimizationModule(optimization: Optimization)
Bases:
LightningModuleArmory lightning module to perform attack optimizations
- configure_optimizers()
Configure optimizers
- on_train_epoch_end()
On train epoch end
- setup(stage: str) None
Sets up the exporters
- Parameters:
stage (str) – stage
Module contents
This package contains the Armory runtime engines.