Time-RCD / time_rcd /_core /time_rcd_config.py
Lantian72's picture
Align inference API with official GitHub implementation
0880420 verified
Raw
History Blame Contribute Delete
2.2 kB
from dataclasses import dataclass, field
from typing import Dict, Optional
@dataclass
class TimeSeriesConfig:
"""Configuration for time series encoder.
Attributes:
d_model: Dimension of model hidden states.
d_proj: Dimension of projection layer.
patch_size: Size of time series patches.
num_layers: Number of transformer layers.
num_heads: Number of attention heads.
d_ff_dropout: Dropout rate for feed-forward networks.
use_rope: Whether to use Rotary Position Embedding.
activation: Activation function name.
num_features: Number of input features.
"""
d_model: int = 512
d_proj: int = 256
patch_size: int = 4
num_query_tokens: int = 1
num_layers: int = 8
num_heads: int = 8
d_ff_dropout: float = 0.1
use_rope: bool = True
activation: str = "gelu"
num_features: int = 1
@dataclass
class TimeRCDConfig:
"""Configuration class for Time_RCD model.
This class contains all hyperparameters and settings for the Time_RCD model.
It is implemented as a dataclass for easy instantiation and modification.
Attributes:
ts_config: Configuration for time series encoder.
batch_size: Training batch size.
learning_rate: Learning rate for optimization.
num_epochs: Number of training epochs.
max_seq_len: Maximum sequence length.
dropout: Dropout rate.
accumulation_steps: Gradient accumulation steps.
weight_decay: Weight decay for optimization.
enable_ts_train: Whether to train the time series encoder.
seed: Random seed for reproducibility.
"""
# Model configurations
ts_config: TimeSeriesConfig = field(default_factory=TimeSeriesConfig)
# Training parameters
batch_size: int = 3
learning_rate: float = 1e-4
num_epochs: int = 1000
max_seq_len: int = 512
dropout: float = 0.1
accumulation_steps: int = 1
weight_decay: float = 1e-5
enable_ts_train: bool = False
seed: int = 72
def to_dict(self) -> Dict[str, any]:
return {
"ts_config": self.ts_config.__dict__,
}
default_config = TimeRCDConfig()