ML.Net 即使我有数据,AutoML 也会出现空引用异常?

ML.Net AutoML is getting null reference exception even though I have data?

我正在学习 ML.Net 并尝试使用 AutoML API 并遇到空引用异常。问题已根据我最近的学习和最少量的代码进行了更新。

把它放在 VSCode 中,您也可以体验二维向量爆炸。

class Program
{
    static void Main(string[] args)
    {
        var mlContext = new MLContext();

        // create schema for multidimensional vector
        var autoSchema = SchemaDefinition.Create(typeof(InputData));
        var col = autoSchema[1];
        col.ColumnType = new VectorDataViewType(NumberDataViewType.Single, 3, 60);

        // fabricate some data
        var trainingData = new List<InputData>();
        var inputData = new InputData();
        inputData.MultiDimensional = new float[20,20];
        for (int i = 0; i < inputData.MultiDimensional.GetUpperBound(0); i++)
        {
            for (int j = 0; j < inputData.MultiDimensional.GetUpperBound(1); j++)
            {
                inputData.MultiDimensional[i,j] = 5; // doesn't matter
            }
        }
        trainingData.Add(inputData);

        // setup a data view
        IDataView trainingDataView = mlContext.Data.LoadFromEnumerable<InputData>(trainingData, autoSchema);

        // preview it (goes BOOM)
        var preview = trainingDataView.Preview();

        // run the experiment
        var settings = new BinaryExperimentSettings();
        settings.MaxExperimentTimeInSeconds = 60;
        ExperimentResult<BinaryClassificationMetrics> experimentResult = mlContext.Auto()
            .CreateBinaryClassificationExperiment(settings)
            .Execute(trainingDataView);
    }
}

public class InputData
{
    public bool Label { get; set; }
    public float[,] MultiDimensional { get; set; }
}

文档似乎表明我的设置是正确的:https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.data.vectortypeattribute.-ctor?view=ml-dotnet#Microsoft_ML_Data_VectorTypeAttribute__ctor_System_Int32___

为了解决我的多维向量问题,我试过:

我现在的问题是 - 在 ML.Net 的 AutoML 部分使用多维向量的正确方法是什么?这可能吗?

哇哦,几年后发现我自己的问题仍然悬而未决。从评论中发布的 github 问题来看,这仍然是不可能的。 2022 年的 github issue 证实情况仍然如此。