Module jidenn.config.model_config
Model configurations. Each model is a subclass of the Model
dataclass.
For more information about individual models, see the jidenn.models
module.
Expand source code
"""
Model configurations. Each model is a subclass of the `Model` dataclass.
For more information about individual models, see the `jidenn.models` module.
"""
from dataclasses import dataclass
from typing import List, Optional, Literal
@dataclass
class Model:
"""Base class for model configurations.
Args:
train_input (str): The input to the model. One of (see `jidenn.data.TrainInput` for more details):
- 'highlevel': The predefined high-level features.
- 'highlevel_constituents': The high-level features constructed with the constituents.
- 'constituents': The constituents variables.
- 'relative_constituents': The constituents variables with only relative variables wrt. jet.
- 'interaction_constituents': The constituents variables and interaction variables.
activation (str): The activation function to use. Option: 'relu', 'gelu', 'tanh', 'swish'.
"""
train_input = Literal['highlevel',
'highlevel_constituents',
'constituents',
'relative_constituents',
'interaction_constituents']
activation: Literal['relu', 'gelu', 'tanh', 'swish']
@dataclass
class FC(Model):
"""Basic fully-connected model.
Args:
layer_size (int): Hidden layer size (all are the same).
num_layers (int): Number of hidden layers.
dropout (float): Dropout after FC layers.
"""
layer_size: int # Hidden layer sizes.
num_layers: int # Number of highway layers.
dropout: Optional[float] # Dropout after FC layers.
@dataclass
class Highway(Model):
"""Extended fully-connected model with highway connections.
Args:
layer_size (int): Hidden layer size (all are the same).
num_layers (int): Number of hidden layers.
dropout (float): Dropout after FC layers.
"""
layer_size: int # Hidden layer sizes.
num_layers: int # Number of highway layers.
dropout: Optional[float] # Dropout after FC layers.
@dataclass
class PFN(Model):
"""Particle Flow Network.
Args:
Phi_sizes (List[int]): Per-particle mapping hidden layer sizes.
F_sizes (List[int]): Mapping of the summed per-particle features hidden layer sizes.
batch_norm (bool): Whether to use batch normalization before all layers.
Phi_dropout (float): Dropout after Phi layers.
F_dropout (float): Dropout after F layers.
"""
Phi_sizes: List[int] # Hidden layer sizes.
F_sizes: List[int] # Number of highway layers.
Phi_backbone: Literal["cnn", "fc"]
batch_norm: bool
Phi_dropout: Optional[float] # Dropout after FC layers.
F_dropout: Optional[float] # Dropout after FC layers.
@dataclass
class EFN(Model):
"""Energy Flow Network.
Args:
Phi_sizes (List[int]): Per-particle mapping hidden layer sizes.
F_sizes (List[int]): Mapping of the summed per-particle features hidden layer sizes.
batch_norm (bool): Whether to use batch normalization before all layers.
Phi_dropout (float): Dropout after Phi layers.
F_dropout (float): Dropout after F layers.
"""
Phi_sizes: List[int] # Hidden layer sizes.
F_sizes: List[int] # Number of highway layers.
Phi_backbone: Literal["cnn", "fc"]
batch_norm: bool
Phi_dropout: Optional[float] # Dropout after FC layers.
F_dropout: Optional[float] # Dropout after FC layers.
@dataclass
class BDT(Model):
"""Boosted Decision Tree.
Args:
num_trees (int): Number of trees.
growing_strategy (str): Growing strategy.
max_depth (int): Maximum depth of the tree.
split_axis (str): Split axis.
shrinkage (int): Shrinkage.
min_examples (int): Minimum number of examples.
num_threads (int): Number of threads.
l2_regularization (float): L2 regularization.
max_num_nodes (int): Maximum number of nodes.
tmp_dir (str): Temporary directory for checkpointing.
"""
num_trees: int
growing_strategy: str
max_depth: int
split_axis: str
shrinkage: int
min_examples: int
num_threads: int
l2_regularization: float
max_num_nodes: int
tmp_dir: str
@dataclass
class Transformer(Model):
"""Transformer model.
Args:
embed_dim (int): Embedding dimension, dimension of the internal representation.
self_attn_layers (int): Number of SelfAttention layers.
expansion (int): Number of hidden units in FFN is expansion * embed_dim.
dropout (float): Dropout after FFN layer.
num_embed_layers (int): Number of embedding layers (with hidden size `embed_dim`)
heads (int): Number of heads, must be a divisor of `embed_dim`.
"""
embed_dim: int
self_attn_layers: int
heads: int
expansion: int
dropout: float
embed_layers: int
@dataclass
class DeParT(Model):
"""Dynamically Ehnanced Particle Transformer model.
Args:
self_attn_layers (int): Number of SelfAttention layers.
embed_dim (int): Embedding dimension, dimension of the internal representation.
embed_layers (int): Number of embedding layers (with hidden size `embed_dim`)
expansion (int): Number of hidden units in FFN is expansion * embed_dim.
heads (int): Number of heads, must be a divisor of `embed_dim`.
class_attn_layers (int): Number of ClassAttention layers.
dropout (float): Dropout in SelfAttention layers.
class_dropout (float): Dropout in ClassAttention layers.
layer_scale_init_value (float): Initial value for layer scale.
stochastic_depth_drop_rate (float): Stochastic depth drop rate.
class_stochastic_depth_drop_rate (float): Stochastic depth drop rate for ClassAttention layers.
interaction_embedding_layers (int): Number of interaction embedding layers.
interaction_embedding_layer_size (int): Size of interaction embedding layers.
"""
self_attn_layers: int # 6,12
embed_dim: int
embed_layers: int
expansion: int # 4, number of hidden units in FFN is expansion * embed_dim
heads: int # 12, must divide embed_dim
class_attn_layers: int
dropout: float # Dropout after FFN layer.
class_dropout: float
layer_scale_init_value: float
stochastic_depth_drop_rate: float
class_stochastic_depth_drop_rate: float
interaction_embedding_layers: int
interaction_embedding_layer_size: int
@dataclass
class ParT(Model):
"""Particle Transformer model.
Args:
self_attn_layers (int): Number of SelfAttention layers.
embed_dim (int): Embedding dimension, dimension of the internal representation.
embed_layers (int): Number of embedding layers (with hidden size `embed_dim`)
dropout (float): Dropout in SelfAttention layers.
expansion (int): Number of hidden units in FFN is expansion * embed_dim.
heads (int): Number of heads, must be a divisor of `embed_dim`.
class_attn_layers (int): Number of ClassAttention layers.
interaction_embedding_layers (int): Number of interaction embedding layers.
interaction_embedding_layer_size (int): Size of interaction embedding layers.
"""
self_attn_layers: int # 6,12
embed_dim: int
embed_layers: int
dropout: float # Dropout after FFN layer.
expansion: int # 4, number of hidden units in FFN is expansion * embed_dim
heads: int # 12, must divide embed_dim
class_attn_layers: int
interaction_embedding_layers: int
interaction_embedding_layer_size: int
Classes
class BDT (activation: Literal['relu', 'gelu', 'tanh', 'swish'], num_trees: int, growing_strategy: str, max_depth: int, split_axis: str, shrinkage: int, min_examples: int, num_threads: int, l2_regularization: float, max_num_nodes: int, tmp_dir: str)
-
Boosted Decision Tree.
Args
num_trees
:int
- Number of trees.
growing_strategy
:str
- Growing strategy.
max_depth
:int
- Maximum depth of the tree.
split_axis
:str
- Split axis.
shrinkage
:int
- Shrinkage.
min_examples
:int
- Minimum number of examples.
num_threads
:int
- Number of threads.
l2_regularization
:float
- L2 regularization.
max_num_nodes
:int
- Maximum number of nodes.
tmp_dir
:str
- Temporary directory for checkpointing.
Expand source code
@dataclass class BDT(Model): """Boosted Decision Tree. Args: num_trees (int): Number of trees. growing_strategy (str): Growing strategy. max_depth (int): Maximum depth of the tree. split_axis (str): Split axis. shrinkage (int): Shrinkage. min_examples (int): Minimum number of examples. num_threads (int): Number of threads. l2_regularization (float): L2 regularization. max_num_nodes (int): Maximum number of nodes. tmp_dir (str): Temporary directory for checkpointing. """ num_trees: int growing_strategy: str max_depth: int split_axis: str shrinkage: int min_examples: int num_threads: int l2_regularization: float max_num_nodes: int tmp_dir: str
Ancestors
Class variables
var growing_strategy : str
var l2_regularization : float
var max_depth : int
var max_num_nodes : int
var min_examples : int
var num_threads : int
var num_trees : int
var shrinkage : int
var split_axis : str
var tmp_dir : str
class DeParT (activation: Literal['relu', 'gelu', 'tanh', 'swish'], self_attn_layers: int, embed_dim: int, embed_layers: int, expansion: int, heads: int, class_attn_layers: int, dropout: float, class_dropout: float, layer_scale_init_value: float, stochastic_depth_drop_rate: float, class_stochastic_depth_drop_rate: float, interaction_embedding_layers: int, interaction_embedding_layer_size: int)
-
Dynamically Ehnanced Particle Transformer model.
Args
self_attn_layers
:int
- Number of SelfAttention layers.
embed_dim
:int
- Embedding dimension, dimension of the internal representation.
embed_layers
:int
- Number of embedding layers (with hidden size
embed_dim
) expansion
:int
- Number of hidden units in FFN is expansion * embed_dim.
heads
:int
- Number of heads, must be a divisor of
embed_dim
. class_attn_layers
:int
- Number of ClassAttention layers.
dropout
:float
- Dropout in SelfAttention layers.
class_dropout
:float
- Dropout in ClassAttention layers.
layer_scale_init_value
:float
- Initial value for layer scale.
stochastic_depth_drop_rate
:float
- Stochastic depth drop rate.
class_stochastic_depth_drop_rate
:float
- Stochastic depth drop rate for ClassAttention layers.
interaction_embedding_layers
:int
- Number of interaction embedding layers.
interaction_embedding_layer_size
:int
- Size of interaction embedding layers.
Expand source code
@dataclass class DeParT(Model): """Dynamically Ehnanced Particle Transformer model. Args: self_attn_layers (int): Number of SelfAttention layers. embed_dim (int): Embedding dimension, dimension of the internal representation. embed_layers (int): Number of embedding layers (with hidden size `embed_dim`) expansion (int): Number of hidden units in FFN is expansion * embed_dim. heads (int): Number of heads, must be a divisor of `embed_dim`. class_attn_layers (int): Number of ClassAttention layers. dropout (float): Dropout in SelfAttention layers. class_dropout (float): Dropout in ClassAttention layers. layer_scale_init_value (float): Initial value for layer scale. stochastic_depth_drop_rate (float): Stochastic depth drop rate. class_stochastic_depth_drop_rate (float): Stochastic depth drop rate for ClassAttention layers. interaction_embedding_layers (int): Number of interaction embedding layers. interaction_embedding_layer_size (int): Size of interaction embedding layers. """ self_attn_layers: int # 6,12 embed_dim: int embed_layers: int expansion: int # 4, number of hidden units in FFN is expansion * embed_dim heads: int # 12, must divide embed_dim class_attn_layers: int dropout: float # Dropout after FFN layer. class_dropout: float layer_scale_init_value: float stochastic_depth_drop_rate: float class_stochastic_depth_drop_rate: float interaction_embedding_layers: int interaction_embedding_layer_size: int
Ancestors
Class variables
var class_attn_layers : int
var class_dropout : float
var class_stochastic_depth_drop_rate : float
var dropout : float
var embed_dim : int
var embed_layers : int
var expansion : int
var heads : int
var interaction_embedding_layer_size : int
var interaction_embedding_layers : int
var layer_scale_init_value : float
var self_attn_layers : int
var stochastic_depth_drop_rate : float
class EFN (activation: Literal['relu', 'gelu', 'tanh', 'swish'], Phi_sizes: List[int], F_sizes: List[int], Phi_backbone: Literal['cnn', 'fc'], batch_norm: bool, Phi_dropout: Optional[float], F_dropout: Optional[float])
-
Energy Flow Network.
Args
Phi_sizes
:List[int]
- Per-particle mapping hidden layer sizes.
F_sizes
:List[int]
- Mapping of the summed per-particle features hidden layer sizes.
batch_norm
:bool
- Whether to use batch normalization before all layers.
Phi_dropout
:float
- Dropout after Phi layers.
F_dropout
:float
- Dropout after F layers.
Expand source code
@dataclass class EFN(Model): """Energy Flow Network. Args: Phi_sizes (List[int]): Per-particle mapping hidden layer sizes. F_sizes (List[int]): Mapping of the summed per-particle features hidden layer sizes. batch_norm (bool): Whether to use batch normalization before all layers. Phi_dropout (float): Dropout after Phi layers. F_dropout (float): Dropout after F layers. """ Phi_sizes: List[int] # Hidden layer sizes. F_sizes: List[int] # Number of highway layers. Phi_backbone: Literal["cnn", "fc"] batch_norm: bool Phi_dropout: Optional[float] # Dropout after FC layers. F_dropout: Optional[float] # Dropout after FC layers.
Ancestors
Class variables
var F_dropout : Optional[float]
var F_sizes : List[int]
var Phi_backbone : Literal['cnn', 'fc']
var Phi_dropout : Optional[float]
var Phi_sizes : List[int]
var batch_norm : bool
class FC (activation: Literal['relu', 'gelu', 'tanh', 'swish'], layer_size: int, num_layers: int, dropout: Optional[float])
-
Basic fully-connected model.
Args
layer_size
:int
- Hidden layer size (all are the same).
num_layers
:int
- Number of hidden layers.
dropout
:float
- Dropout after FC layers.
Expand source code
@dataclass class FC(Model): """Basic fully-connected model. Args: layer_size (int): Hidden layer size (all are the same). num_layers (int): Number of hidden layers. dropout (float): Dropout after FC layers. """ layer_size: int # Hidden layer sizes. num_layers: int # Number of highway layers. dropout: Optional[float] # Dropout after FC layers.
Ancestors
Class variables
var dropout : Optional[float]
var layer_size : int
var num_layers : int
class Highway (activation: Literal['relu', 'gelu', 'tanh', 'swish'], layer_size: int, num_layers: int, dropout: Optional[float])
-
Extended fully-connected model with highway connections.
Args
layer_size
:int
- Hidden layer size (all are the same).
num_layers
:int
- Number of hidden layers.
dropout
:float
- Dropout after FC layers.
Expand source code
@dataclass class Highway(Model): """Extended fully-connected model with highway connections. Args: layer_size (int): Hidden layer size (all are the same). num_layers (int): Number of hidden layers. dropout (float): Dropout after FC layers. """ layer_size: int # Hidden layer sizes. num_layers: int # Number of highway layers. dropout: Optional[float] # Dropout after FC layers.
Ancestors
Class variables
var dropout : Optional[float]
var layer_size : int
var num_layers : int
class Model (activation: Literal['relu', 'gelu', 'tanh', 'swish'])
-
Base class for model configurations.
Args
train_input
:str
-
The input to the model. One of (see
jidenn.data.TrainInput
for more details):- 'highlevel': The predefined high-level features.
- 'highlevel_constituents': The high-level features constructed with the constituents.
- 'constituents': The constituents variables.
- 'relative_constituents': The constituents variables with only relative variables wrt. jet.
- 'interaction_constituents': The constituents variables and interaction variables.
activation
:str
- The activation function to use. Option: 'relu', 'gelu', 'tanh', 'swish'.
Expand source code
@dataclass class Model: """Base class for model configurations. Args: train_input (str): The input to the model. One of (see `jidenn.data.TrainInput` for more details): - 'highlevel': The predefined high-level features. - 'highlevel_constituents': The high-level features constructed with the constituents. - 'constituents': The constituents variables. - 'relative_constituents': The constituents variables with only relative variables wrt. jet. - 'interaction_constituents': The constituents variables and interaction variables. activation (str): The activation function to use. Option: 'relu', 'gelu', 'tanh', 'swish'. """ train_input = Literal['highlevel', 'highlevel_constituents', 'constituents', 'relative_constituents', 'interaction_constituents'] activation: Literal['relu', 'gelu', 'tanh', 'swish']
Subclasses
Class variables
var activation : Literal['relu', 'gelu', 'tanh', 'swish']
var train_input
class PFN (activation: Literal['relu', 'gelu', 'tanh', 'swish'], Phi_sizes: List[int], F_sizes: List[int], Phi_backbone: Literal['cnn', 'fc'], batch_norm: bool, Phi_dropout: Optional[float], F_dropout: Optional[float])
-
Particle Flow Network.
Args
Phi_sizes
:List[int]
- Per-particle mapping hidden layer sizes.
F_sizes
:List[int]
- Mapping of the summed per-particle features hidden layer sizes.
batch_norm
:bool
- Whether to use batch normalization before all layers.
Phi_dropout
:float
- Dropout after Phi layers.
F_dropout
:float
- Dropout after F layers.
Expand source code
@dataclass class PFN(Model): """Particle Flow Network. Args: Phi_sizes (List[int]): Per-particle mapping hidden layer sizes. F_sizes (List[int]): Mapping of the summed per-particle features hidden layer sizes. batch_norm (bool): Whether to use batch normalization before all layers. Phi_dropout (float): Dropout after Phi layers. F_dropout (float): Dropout after F layers. """ Phi_sizes: List[int] # Hidden layer sizes. F_sizes: List[int] # Number of highway layers. Phi_backbone: Literal["cnn", "fc"] batch_norm: bool Phi_dropout: Optional[float] # Dropout after FC layers. F_dropout: Optional[float] # Dropout after FC layers.
Ancestors
Class variables
var F_dropout : Optional[float]
var F_sizes : List[int]
var Phi_backbone : Literal['cnn', 'fc']
var Phi_dropout : Optional[float]
var Phi_sizes : List[int]
var batch_norm : bool
class ParT (activation: Literal['relu', 'gelu', 'tanh', 'swish'], self_attn_layers: int, embed_dim: int, embed_layers: int, dropout: float, expansion: int, heads: int, class_attn_layers: int, interaction_embedding_layers: int, interaction_embedding_layer_size: int)
-
Particle Transformer model.
Args
self_attn_layers
:int
- Number of SelfAttention layers.
embed_dim
:int
- Embedding dimension, dimension of the internal representation.
embed_layers
:int
- Number of embedding layers (with hidden size
embed_dim
) dropout
:float
- Dropout in SelfAttention layers.
expansion
:int
- Number of hidden units in FFN is expansion * embed_dim.
heads
:int
- Number of heads, must be a divisor of
embed_dim
. class_attn_layers
:int
- Number of ClassAttention layers.
interaction_embedding_layers
:int
- Number of interaction embedding layers.
interaction_embedding_layer_size
:int
- Size of interaction embedding layers.
Expand source code
@dataclass class ParT(Model): """Particle Transformer model. Args: self_attn_layers (int): Number of SelfAttention layers. embed_dim (int): Embedding dimension, dimension of the internal representation. embed_layers (int): Number of embedding layers (with hidden size `embed_dim`) dropout (float): Dropout in SelfAttention layers. expansion (int): Number of hidden units in FFN is expansion * embed_dim. heads (int): Number of heads, must be a divisor of `embed_dim`. class_attn_layers (int): Number of ClassAttention layers. interaction_embedding_layers (int): Number of interaction embedding layers. interaction_embedding_layer_size (int): Size of interaction embedding layers. """ self_attn_layers: int # 6,12 embed_dim: int embed_layers: int dropout: float # Dropout after FFN layer. expansion: int # 4, number of hidden units in FFN is expansion * embed_dim heads: int # 12, must divide embed_dim class_attn_layers: int interaction_embedding_layers: int interaction_embedding_layer_size: int
Ancestors
Class variables
var class_attn_layers : int
var dropout : float
var embed_dim : int
var embed_layers : int
var expansion : int
var heads : int
var interaction_embedding_layer_size : int
var interaction_embedding_layers : int
var self_attn_layers : int
class Transformer (activation: Literal['relu', 'gelu', 'tanh', 'swish'], embed_dim: int, self_attn_layers: int, heads: int, expansion: int, dropout: float, embed_layers: int)
-
Transformer model.
Args
embed_dim
:int
- Embedding dimension, dimension of the internal representation.
self_attn_layers
:int
- Number of SelfAttention layers.
expansion
:int
- Number of hidden units in FFN is expansion * embed_dim.
dropout
:float
- Dropout after FFN layer.
num_embed_layers
:int
- Number of embedding layers (with hidden size
embed_dim
) heads
:int
- Number of heads, must be a divisor of
embed_dim
.
Expand source code
@dataclass class Transformer(Model): """Transformer model. Args: embed_dim (int): Embedding dimension, dimension of the internal representation. self_attn_layers (int): Number of SelfAttention layers. expansion (int): Number of hidden units in FFN is expansion * embed_dim. dropout (float): Dropout after FFN layer. num_embed_layers (int): Number of embedding layers (with hidden size `embed_dim`) heads (int): Number of heads, must be a divisor of `embed_dim`. """ embed_dim: int self_attn_layers: int heads: int expansion: int dropout: float embed_layers: int
Ancestors
Class variables
var dropout : float
var embed_dim : int
var embed_layers : int
var expansion : int
var heads : int
var self_attn_layers : int