Tutorial: Build an ML Pipeline
Data, preprocessing, training, evaluation and export
You will build: a training pipeline and export it. Time: about 15 minutes. Prerequisites: Beep.Skia and Beep.Skia.ML.
1. Pipeline stages
using Beep.Skia;
using Beep.Skia.ML;
var manager = new DrawingManager();
var data = new MLDataSourceNode { X = 60, Y = 120, Width = 180, Height = 80, Label = "Training data" };
var prep = new MLPreprocessNode { X = 300, Y = 120, Width = 180, Height = 80, Label = "Normalize" };
var model = new MLModelNode { X = 540, Y = 120, Width = 180, Height = 80, Label = "Model" };
var trainer = new MLTrainerNode { X = 300, Y = 260, Width = 180, Height = 80, Label = "Train" };
var evaluate = new MLEvaluateNode { X = 540, Y = 260, Width = 180, Height = 80, Label = "Evaluate" };
foreach (var node in new SkiaComponent[] { data, prep, model, trainer, evaluate })
manager.AddComponent(node);
2. Connect the pipeline
manager.ConnectComponents(data, prep);
manager.ConnectComponents(prep, model);
manager.ConnectComponents(model, trainer);
manager.ConnectComponents(prep, trainer);
manager.ConnectComponents(trainer, evaluate);
foreach (var line in manager.GetLines())
line.RoutingMode = LineRoutingMode.Orthogonal;
3. Export the pipeline
The ML family can export the graph as a pipeline description for external tooling; the exact format is configured on the export node.
var export = new MLModelExportNode { X = 780, Y = 260, Width = 180, Height = 80, Label = "Export" };
manager.AddComponent(export);
manager.ConnectComponents(evaluate, export);
manager.RequestRedraw();
Next steps
- ML family — every stage type and the rendered grid
- Workflow engine — run the pipeline as a workflow