Module jidenn.models

This module contains all the models used for the experiments on jet identification. They can be basicaly clustered into three categories:

All models (except jidenn.models.BDT) are implemented as a subclass of the tf.keras.Model class with multiple layers as a tf.keras.layers.Layer subclass. They also have theree common initialization arguments:

  • 'input_size': the size of the input
  • 'output_layer': the output layer of the model, to allow binary or multi-class classification
  • 'preprocess': a preprocessing layer to be applied to the input, eg. a tf.keras.layers.Normalization layer (see jidenn.model_builders.get_normalization)

The BDT model (jidenn.models.BDT) is an implemenatation from tensorflow_decision_forests, namely tfdf.keras.GradientBoostedTreesModel. You need to isntall tensorflow_decision_forests to use this model.

The specific inputs to the models are defined in the jidenn.data.TrainInput module. Configurations for the models are defined in the jidenn.config.model_config module.

The model that we developed is the Dynamicaly Ehnanced Particle Transformer (DeParT) (jidenn.models.DeParT).

Expand source code
"""
This module contains all the models used for the experiments on jet identification.
They can be basicaly clustered into three categories:

- constituent based models: these models take as input the constituents of the jet 
    (`jidenn.models.Transformer`, `jidenn.models.PFN`, `jidenn.models.EFN`, `jidenn.models.DeParT`, `jidenn.models.ParT`)
- jet variables based models: these models take high-level precomputed jet variables as input
    (`jidenn.models.Highway`, `jidenn.models.FC`)
- jet variables computed from constituents: these models take as input high-level jet variables computed from the constituents
    (`jidenn.models.BDT`)

All models (except `jidenn.models.BDT`) are implemented as a subclass of the `tf.keras.Model` class with
multiple layers as a `tf.keras.layers.Layer` subclass. 
They also have theree common initialization arguments:

- 'input_size': the size of the input
- 'output_layer': the output layer of the model, to allow binary or multi-class classification
- 'preprocess': a preprocessing layer to be applied to the input, eg. a `tf.keras.layers.Normalization` layer (see `jidenn.model_builders.get_normalization`)

The BDT model (`jidenn.models.BDT`) is an implemenatation from `tensorflow_decision_forests`, namely `tfdf.keras.GradientBoostedTreesModel`.
You need to isntall `tensorflow_decision_forests` to use this model.

The specific inputs to the models are defined in the `jidenn.data.TrainInput` module.
Configurations for the models are defined in the `jidenn.config.model_config` module.

The model that we developed is the **Dynamicaly Ehnanced Particle Transformer (DeParT)** (`jidenn.models.DeParT`).
"""

Sub-modules

jidenn.models.BDT

BDT model based on tensorflow_decision_forests implementation of tfdf.keras.GradientBoostedTreesModel. See …

jidenn.models.DeParT

Implementation of Dynamicaly Ehnanced Particle Transformer (DeParT) model …

jidenn.models.EFN

Module implementing the Energy Flow Network (EFN) model. See https://energyflow.network for original implementation or the paper …

jidenn.models.FC

Implements a fully connected neural network, i.e. a multi-layer perceptron following the traditional notation, a layer is a linear transformation …

jidenn.models.Highway

Implementation of the Highway Network model based on the paper https://arxiv.org/abs/1505.00387

jidenn.models.PFN

Implementation of the Particle Flow Network (PFN) model. See https://energyflow.network for original implementation or the paper …

jidenn.models.ParT

Implementation of Particle Transformer model based on the paper https://arxiv.org/abs/2202.03772

jidenn.models.Transformer

Implementation of the Transformer model from the paper "Attention is all you need," see https://arxiv.org/abs/1706.03762