intermediate backup

This commit is contained in:
2025-05-03 20:46:14 +02:00
parent 2b0a5728d4
commit 6542caf48f
38 changed files with 4513 additions and 1067 deletions

View File

@ -0,0 +1,18 @@
from pydantic import BaseModel, Field
from typing import List, Optional, Literal
class ModelEvalConfig(BaseModel):
"""Configuration for evaluating a single forecasting model or an ensemble."""
name: str = Field(..., description="Name of the forecasting model or ensemble.")
type: Literal['model', 'ensemble'] = Field(..., description="Type of evaluation artifact: 'model' for a single checkpoint, 'ensemble' for an ensemble definition JSON.")
model_path: str = Field(..., description="Path to the saved PyTorch model file (.ckpt for type='model') or the ensemble definition JSON file (.json for type='ensemble').")
model_config_path: str = Field(..., description="Path to the forecasting config (YAML) used for this model training (or for the best trial in an ensemble).")
target_scaler_path: Optional[str] = Field(None, description="Path to the target scaler file for the single model (or will be loaded per fold for ensemble).")
class OptimizationRunConfig(BaseModel):
"""Main configuration for running battery optimization with multiple models/ensembles."""
initial_b: float = Field(..., description="Initial state of charge of the battery (MWh).")
max_capacity: float = Field(..., description="Maximum energy capacity of the battery (MWh).")
max_rate: float = Field(..., description="Maximum charge/discharge power rate of the battery (MW).")
optimization_horizon_hours: int = Field(24, gt=0, description="The length of the time window (in hours) for optimization.")
models: List[ModelEvalConfig] = Field(..., description="List of forecasting models or ensembles to evaluate.")