dotnet / dotnet/machinelearning

Create Pipeline Visualizer

Open
#6,326 2 comments 0 reactions 0 assignees View on GitHub
area-Core enhancement
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

Create a visualization method that when given a pipeline displays a visual of the pipeline. This can work both for interactive and standard .NET projects.

## API

### Define pipeline

```csharp
var pipeline =
mlContext.Transforms.Concatenate(outputColumnName:"Features", inputColumnNames: new [] {"Col1", "Col2" })
.Append(mlContext.Transforms.ReplaceMissingValues(outputColumnName:"Features",inputColumnName:"Features")
.Append(mlContext.Regression.Trainers.Sdca(labelColumnName:"Label", featureColumnName:"Features");
```

### Interactive

```csharp
pipeline
```

### .NET project

```csharp
pipeline.SaveToImage("image.png");
```

## Samples

```mermaid
flowchart TB;
subgraph OutputColumns
OutputSchema[Score]
end
subgraph Pipeline
direction TB
Concatenate--Features-->ReplaceMissingValues
ReplaceMissingValues--Features-->Sdca
click Concatenate "https://docs.microsoft.com/dotnet/api/microsoft.ml.transformextensionscatalog.concatenate?view=ml-dotnet#microsoft-ml-transformextensionscatalog-concatenate(microsoft-ml-transformscatalog-system-string-system-string())"
click ReplaceMissingValues "https://docs.microsoft.com/dotnet/api/microsoft.ml.extensionscatalog.replacemissingvalues?view=ml-dotnet#microsoft-ml-extensionscatalog-replacemissingvalues(microsoft-ml-transformscatalog-microsoft-ml-inputoutputcolumnpair()-microsoft-ml-transforms-missingvaluereplacingestimator-replacementmode-system-boolean)"
click Sdca "https://docs.microsoft.com/dotnet/api/microsoft.ml.trainers.sdcaregressiontrainer?view=ml-dotnet"
end
subgraph InputColumns
InputSchema["Col1, Col2, Label"]
end
InputColumns-->Pipeline
Pipeline-->OutputColumns
```

## Proposed Implementation

```mermaid
flowchart LR;
EstimatorChain --> Mermaid
Mermaid --> Markdig
Markdig --> HTML
HTML --> CustomFormatter
HTML --> Image
```

1. Take an ML.NET `EstimatorChain` and dynamically generate Mermaid diagram.
2. Process Mermaid diagram as Markdown using Markdig
3. Convert Mermaid diagram to HTML
4. Display HTML
1. If in interactive environment, register a custom formatter.
1. If in standard .NET application, save as image.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.