Metadata-Version: 2.4
Name: trigger_model
Version: 0.1.0
Summary: Utilities for ML models targeting hardware triggers
Home-page: https://github.com/your-repo/trigger_model_pkg
Author: Your Name
Author-email: your.email@cern.ch
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: mlflow>=2.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Machine Learning for Hardware Triggers

`trigger_model` provides a set of utilities for Machine Learning models targeting FPGA deployment. 
The `TriggerModel` class conolidates serveral Machine Learning frontends and compiler backends to construct a "trigger model". MLflow utilities are for logging, versioning and loading of trigger models.

## Installation

```bash
pip install trigger_model
```

```python
from trigger_model.core import TriggerModel 

trigger_model = TriggerModel(name="my-trigger-model", ml_backend="Keras", compiler="hls4ml", model, compiler_config or None)
trigger_model() #call the constructor

#then:
output_software = trigger_model.software_predict(input_data)
output_firmware = trigger_model.firmware_predict(input_data)
output_qonnx = trigger_model.qonnx_predict(input_data)

#save and load trigger models:
trigger_model.save("trigger_model.tar.xz")

#in a seperate session:
from trigger_model.core import TriggerModel 
trigger_model = TriggerModel.load("trigger_model.tar.xz")
```

## Logging with MLFlow
```python
#logging with MLFlow:
import mlflow
from trigger_model.mlflow_wrapper import log_model

mlflow.set_tracking_uri("https://ngt.cern.ch/models")
experiment_id = mlflow.create_experiment("example-experiment")

with mlflow.start_run(run_name="trial-v1", experiment_id=experiment_id):
    log_model(model, registered_model_name="TriggerModel")
