Getting started

Installation

The published package name is calibration-nn (the import name remains cann).

pip install calibration-nn

Backward pass (online calibration): calibrate a market surface

This demonstrates the backward pass (online calibration) using a bundled pretrained surrogate (trained during the forward pass (offline learning)).

import numpy as np

from cann.data.market_surface import MarketSurface
from cann.engine.calibration import calibrate_model
from cann.engine.calibration_config import CalibrationConfig
from cann.pretrained import PretrainedRoughHeston


trained_model = PretrainedRoughHeston()

# Columns of market_inputs must match trained_model.model_config.market_inputs
# (in this repo's scripts: [T, K/S, r]).
market_inputs = np.array(
    [
        [0.25, 1.00, 0.02],
        [0.50, 0.95, 0.02],
        [1.00, 1.05, 0.02],
    ],
    dtype=float,
)

observed = np.array([0.20, 0.215, 0.23], dtype=float)

market_surface = MarketSurface(
    market_inputs=market_inputs,
    observed=observed,
    weights=None,
)

calib_cfg = trained_model.model_config.calibration_defaults or CalibrationConfig()

result = calibrate_model(
    trained_model=trained_model,
    market_surface=market_surface,
    calibration_config=calib_cfg,
)

print("converged:", result.converged)
print("final_loss:", result.final_loss)
print("optimal_parameters:", result.optimal_parameters)