dotnet / dotnet/machinelearning

Consider providing a source generator to generate ModelInput/Output class?

Open
#6,156 3 comments 1 reaction 0 assignees View on GitHub
area-AutoML enhancement Priority:2
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

schema should contain all required information to generate both input/output class

## Usage

- add `model.zip` as `AdditionalFiles` and set `IsMLNetModel` to `true`
![image](https://user-images.githubusercontent.com/16876986/163893797-5000759b-6dbb-4b60-be32-35163a1b2f82.png)

- mlnet generate both input and output class for project

```csharp
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace MLNetSourceGenerator.CodeGen
{

public class TitanicInput
{
[ColumnName(@"PassengerId")]
public float PassengerId {get; set;}

[ColumnName(@"Survived")]
public float Survived {get; set;}

[ColumnName(@"Pclass")]
public float Pclass {get; set;}

[ColumnName(@"Name")]
public string Name {get; set;}

[ColumnName(@"Sex")]
public string Sex {get; set;}

[ColumnName(@"Age")]
public float Age {get; set;}

[ColumnName(@"SibSp")]
public float SibSp {get; set;}

[ColumnName(@"Parch")]
public float Parch {get; set;}

[ColumnName(@"Ticket")]
public string Ticket {get; set;}

[ColumnName(@"Fare")]
public float Fare {get; set;}

[ColumnName(@"Cabin")]
public string Cabin {get; set;}

[ColumnName(@"Embarked")]
public string Embarked {get; set;}

}

public class TitanicOutput
{
[ColumnName(@"PassengerId")]
public float PassengerId {get; set;}

[ColumnName(@"Survived")]
public uint Survived {get; set;}

[ColumnName(@"Pclass")]
public float Pclass {get; set;}

[ColumnName(@"Name")]
public float[] Name {get; set;}

[ColumnName(@"Sex")]
public float[] Sex {get; set;}

[ColumnName(@"Age")]
public float Age {get; set;}

[ColumnName(@"SibSp")]
public float SibSp {get; set;}

[ColumnName(@"Parch")]
public float Parch {get; set;}

[ColumnName(@"Ticket")]
public float[] Ticket {get; set;}

[ColumnName(@"Fare")]
public float Fare {get; set;}

[ColumnName(@"Cabin")]
public float[] Cabin {get; set;}

[ColumnName(@"Embarked")]
public float[] Embarked {get; set;}

[ColumnName(@"Features")]
public float[] Features {get; set;}

[ColumnName(@"PredictedLabel")]
public float PredictedLabel {get; set;}

[ColumnName(@"Score")]
public float[] Score {get; set;}

}

}

```

### Example
- https://github.com/LittleLittleCloud/MLNetModelSourceGenerator

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.