Classifier optimization

Classifier optimization is an optional post-classify stage for neural readout methods. The canonical import path is arcade.classifieroptimization. The module arcade.optimization is a compatibility shim that re-exports the same public API.

Enable the stage through YAML as shown in Enable optimization.

Public surface

Symbol

Role

BaseOptimizer

Optimizer contract

OptimizationResult

Structured result object

register_optimizer, get_optimizer, list_optimizers

Registry helpers

PruningOptimizer

Weight pruning under an error budget

DistillationOptimizer

Teacher to student distillation

NASOptimizer

Architecture search

HyperparameterTuner

Optuna or grid search via tune and maybe_tune

run_optimization_stage

Pipeline stage entry point

pareto_frontier, select_best

Multi-objective selection helpers

Quantization uses arcade.nn.quantization.quantize_model from the stage (no QuantizationOptimizer class).

Config models

The top-level optimization section maps to OptimizationConfig in arcade.config:

Field

Default

Notes

enabled

false

Master switch

target_classifiers

empty list

Empty means all eligible neural methods

error_budget

0.01

Allowed accuracy drop

pruning, distillation, quantization, nas

nested configs

Per-technique flags

Hyperparameter search uses the sibling tuning block as TuningConfig. It is not nested under optimization.

Example

optimization:
  enabled: true
  target_classifiers: [fnn]
  error_budget: 0.01
  pruning:
    enabled: true

tuning:
  enabled: false
from arcade.classifieroptimization import (
    list_optimizers,
    pareto_frontier,
    run_optimization_stage,
)

print(list_optimizers())

Autosummary pages live under API modules.