Skip to content

predict

start_prediction_loop(model, adapter, *, adapter_to_model_transforms=None, model_to_adapter_transforms=None)

Start a prediction loop with the given model and adapter.

Source code in src/flowcean/core/tool/predict.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def start_prediction_loop(
    model: Model,
    adapter: Adapter,
    *,
    adapter_to_model_transforms: Transform | None = None,
    model_to_adapter_transforms: Transform | None = None,
) -> None:
    """Start a prediction loop with the given model and adapter."""
    adapter_to_model_transforms = adapter_to_model_transforms or Identity()
    model_to_adapter_transforms = model_to_adapter_transforms or Identity()

    # Start the adapter
    adapter.start()

    # Run the prediction loop
    try:
        while True:
            # Get data from the adapter
            data = adapter.get_data()
            # Transform the data to the model format
            transformed_data = adapter_to_model_transforms(data)
            # Run the model prediction
            prediction = model.predict(transformed_data)
            # Transform the prediction to the adapter format
            transformed_prediction = model_to_adapter_transforms(
                prediction,
            )
            # Send the prediction to the adapter
            adapter.send_data(transformed_prediction)
    except Stop:
        pass
    except KeyboardInterrupt:
        pass
    finally:
        # Stop the adapter
        adapter.stop()