Transformers Guide🔗
This page explains how to use transformers in your project.
Overview🔗
Transformers convert message payloads from one shape to another before model evaluation or interface publication.
All transformer modules follow the
BaseTransformer contract
and expose:
handler(pv_name, value)to receive incoming struct datatransform()to produce output values
Available Transformers🔗
Transformer Configs🔗
Module |
Description |
YAML reference |
|---|---|---|
|
Scalar/array formula transform from input symbols to output variables |
See sample below |
|
Reconstruct image arrays from flattened channel + X + Y inputs |
See sample below |
|
Relabel and forward values without numeric transformation |
See sample below |
|
Run multiple transformers in one module |
See sample below |
Metadata Propagation🔗
Transformer outputs may be either plain values or structured payloads with
value and additional fields:
PassThroughTransformerpreserves non-valuefields (for examplealarm,timestamp,metadata) when they are present in input structs.SimpleTransformerpreserves non-valuefields only for direct-symbol formulas (for exampleOUT = IN). Computed formulas emit value-only output.TransformerObserverforwards structured outputs unchanged and wraps plain outputs as{"value": ...}.
This makes direct pass-through paths suitable for carrying alarm payloads across transformer stages.
SimpleTransformer Sample Configuration🔗
modules:
input_transformer:
name: "input_transformer"
type: "transformer.SimpleTransformer"
pub: "model_input"
sub:
- "system_input"
module_args: None
config:
symbols:
- "LUME:MLFLOW:TEST_B"
- "LUME:MLFLOW:TEST_A"
variables:
x2:
formula: "LUME:MLFLOW:TEST_B"
x1:
formula: "LUME:MLFLOW:TEST_A"
CAImageTransformer Sample Configuration🔗
modules:
image_transformer:
name: "image_transformer"
type: "transformer.CAImageTransformer"
pub: "model_input"
sub:
- "update"
module_args: None
config:
variables:
img_1:
img_ch: "MY_TEST_CA"
img_x_ch: "MY_TEST_CA_X"
img_y_ch: "MY_TEST_CA_Y"
img_2:
img_ch: "MY_TEST_C2"
img_x_ch: "MY_TEST_CA_X2"
img_y_ch: "MY_TEST_CA_Y2"
PassThroughTransformer Sample Configuration🔗
modules:
output_transformer:
name: "output_transformer"
type: "transformer.PassThroughTransformer"
pub: "system_output"
sub:
- "model_output"
module_args: None
config:
variables:
LUME:MLFLOW:TEST_IMAGE: "y_img"
CompoundTransformer Sample Configuration🔗
Caution
This module may be deprecated in the future because the pub-sub model can replace most compound-transformer use cases.
modules:
compound_transformer:
name: "compound_transformer"
type: "transformer.CompoundTransformer"
pub: "model_input"
sub:
- "update"
module_args: None
config:
transformers:
transformer_1:
type: "SimpleTransformer"
config:
symbols:
- "MY_TEST_A"
- "MY_TEST_B"
variables:
x2:
formula: "MY_TEST_A*2"
x1:
formula: "MY_TEST_B+MY_TEST_A"
transformer_2:
type: "CAImageTransformer"
config:
variables:
img_1:
img_ch: "MY_TEST_CA"
img_x_ch: "MY_TEST_CA_X"
img_y_ch: "MY_TEST_CA_Y"
img_2:
img_ch: "MY_TEST_C2"
img_x_ch: "MY_TEST_CA_X2"
img_y_ch: "MY_TEST_CA_Y2"