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