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