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).