onyxengine.modeling
The models and training config for the Engine.
Model Training
- class onyxengine.modeling.TrainingConfig(*, training_iters: int = 3000, train_batch_size: int = 32, train_val_split_ratio: float = 0.9, test_dataset_size: int = 500, checkpoint_type: Literal['single_step', 'multi_step'] = 'single_step', optimizer: AdamWConfig | SGDConfig = AdamWConfig(name='adamw', lr=0.0003, weight_decay=0.01), lr_scheduler: None | CosineDecayWithWarmupConfig | CosineAnnealingWarmRestartsConfig = None)[source]
Configuration for the training of a model.
- Parameters:
training_iters (int) – Number of training iterations (default is 3000).
train_batch_size (int) – Batch size for training (default is 32).
train_val_split_ratio (float) – Ratio of training data to validation data (default is 0.9).
test_dataset_size (int) – Number of samples in the test dataset (default is 500).
checkpoint_type (Literal['single_step', 'multi_step']) – Type of checkpointing (default is ‘single_step’).
optimizer (Union[AdamWConfig, SGDConfig]) – Optimizer configuration (default is AdamWConfig()).
lr_scheduler (Union[None, CosineDecayWithWarmupConfig, CosineAnnealingWarmRestartsConfig]) – Learning rate scheduler configuration (default is None).
Model Simulation
- class onyxengine.modeling.State(*, name: str, relation: Literal['output', 'delta', 'derivative'], parent: str)[source]
State variable used in ModelSimulatorConfig.
- Parameters:
name (str) – Variable name.
relation (Literal['output', 'delta', 'derivative']) – Method to solve for the variable: variable is an output of the model, parent is the delta of the variable, or parent is the derivative of the variable.
parent (str) – Parent variable to derive from.
- class onyxengine.modeling.ModelSimulatorConfig(*, outputs: List[str] = [], states: List[State] = [], controls: List[str] = [], dt: float = 0)[source]
Configuration class for the model simulator.
- Parameters:
outputs (List[str]) – List of output variables.
states (List[State]) – List of state variables.
controls (List[str]) – List of control variables.
dt (float) – Time step for simulation.
Models
- class onyxengine.modeling.MLPConfig(*, onyx_model_type: str = 'mlp', sim_config: ModelSimulatorConfig = ModelSimulatorConfig(outputs=[], states=[], controls=[], dt=0), num_inputs: int = 1, num_outputs: int = 1, sequence_length: int = 1, hidden_layers: int = 2, hidden_size: int = 32, activation: Literal['relu', 'tanh', 'sigmoid'] = 'relu', dropout: float = 0.0, bias: bool = True)[source]
Configuration class for the MLP model.
- Parameters:
onyx_model_type (str) – Model type = ‘mlp’, immutable.
sim_config (ModelSimulatorConfig) – Configuration for the model’s simulator.
num_inputs (int) – Number of input features (default is 1).
num_outputs (int) – Number of output features (default is 1).
sequence_length (int) – Length of the input sequence (default is 1).
hidden_layers (int) – Number of hidden layers (default is 2).
hidden_size (int) – Size of each hidden layer (default is 32).
activation (Literal['relu', 'tanh', 'sigmoid']) – Activation function (default is ‘relu’).
dropout (float) – Dropout rate for layers (default is 0.0).
bias (bool) – Whether to use bias in layers (default is True).
- class onyxengine.modeling.RNNConfig(*, onyx_model_type: str = 'rnn', sim_config: ModelSimulatorConfig = ModelSimulatorConfig(outputs=[], states=[], controls=[], dt=0), num_inputs: int = 1, num_outputs: int = 1, rnn_type: Literal['RNN', 'LSTM', 'GRU'] = 'LSTM', sequence_length: int = 1, hidden_layers: int = 2, hidden_size: int = 32, dropout: float = 0.0, bias: bool = True)[source]
Configuration class for the RNN model.
- Parameters:
onyx_model_type (str) – Model type = ‘rnn’, immutable.
sim_config (ModelSimulatorConfig) – Configuration for the model’s simulator.
num_inputs (int) – Number of input features (default is 1).
num_outputs (int) – Number of output features (default is 1).
sequence_length (int) – Length of input sequences (default is 1).
rnn_type (Literal['RNN', 'LSTM', 'GRU']) – Type of RNN to use (default is ‘LSTM’).
hidden_layers (int) – Number of hidden layers in the RNN (default is 2).
hidden_size (int) – Number of hidden units in each layer (default is 32).
dropout (float) – Dropout rate (default is 0.0).
bias (bool) – Whether or not to include bias in the RNN (default is True).
- class onyxengine.modeling.TransformerConfig(*, onyx_model_type: str = 'transformer', sim_config: ModelSimulatorConfig = ModelSimulatorConfig(outputs=[], states=[], controls=[], dt=0), num_inputs: int = 1, num_outputs: int = 1, sequence_length: int = 1, n_layer: int = 1, n_head: int = 4, n_embd: int = 32, dropout: float = 0.0, bias: bool = True)[source]
Configuration class for the Transformer model.
- Parameters:
onyx_model_type (str) – Model type = ‘transformer’, immutable.
sim_config (ModelSimulatorConfig) – Configuration for the model’s simulator.
num_inputs (int) – Number of input features (default is 1).
num_outputs (int) – Number of output features (default is 1).
sequence_length (int) – Length of the input sequence (default is 1).
n_layer (int) – Number of transformer layers (default is 1).
n_head (int) – Number of attention heads (default is 4).
n_embd (int) – Size of the embedding dimension (default is 32).
dropout (float) – Dropout rate for layers (default is 0.0).
bias (bool) – Whether to use bias in layers (default is True).