| """TinyCast model configuration. |
| |
| Only the fields that shape the deployed model's construction / forward are |
| kept. Field defaults are the released model's values, so ``TinyCastConfig()`` alone |
| reconstructs the deployed architecture; loading from ``config.json`` overrides |
| them. |
| """ |
|
|
| from dataclasses import asdict, dataclass, field |
| from typing import List |
|
|
|
|
| @dataclass |
| class TinyCastConfig: |
| """Configuration for the deployed TinyCast (dilated-conv) model.""" |
|
|
| |
| quantiles: List[float] = field( |
| default_factory=lambda: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] |
| ) |
| seq_len: int = 2048 |
| output_token_len: int = 48 |
|
|
| |
| top_k_periods: int = 4 |
| significance_alpha: float = 0.05 |
| n_harmonics: int = 1 |
|
|
| |
| conv_dim: int = 64 |
| n_layers: int = 10 |
| kernel_size: int = 3 |
| ffn_mult: float = 1.0 |
| pool_kind: str = "mean_last" |
| causal: bool = True |
| phase_bins: int = 16 |
| decoder_depth: int = 1 |
| separable_conv: bool = True |
| share_ffn: bool = True |
| future_conv: bool = True |
| future_conv_layers: int = 6 |
| future_conv_seed: int = 128 |
|
|
| @property |
| def num_quantiles(self) -> int: |
| return len(self.quantiles) |
|
|
| def to_dict(self) -> dict: |
| return asdict(self) |
|
|