Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 即使我有数据,ML.Net AutoML仍获得空引用异常?_C#_Ml.net_Automl - Fatal编程技术网

C# 即使我有数据,ML.Net AutoML仍获得空引用异常?

C# 即使我有数据,ML.Net AutoML仍获得空引用异常?,c#,ml.net,automl,C#,Ml.net,Automl,我正在学习ML.Net并尝试使用AutoMLAPI,得到一个空引用异常。这个问题已经用我最近学到的知识和最少的代码进行了更新 把这个放在VSCode中,你也会经历一个二维向量爆炸 class Program { static void Main(string[] args) { var mlContext = new MLContext(); // create schema for multidimensional vector

我正在学习ML.Net并尝试使用AutoMLAPI,得到一个空引用异常。这个问题已经用我最近学到的知识和最少的代码进行了更新

把这个放在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; }
}
类程序
{
静态void Main(字符串[]参数)
{
var mlContext=新的mlContext();
//为多维向量创建模式
var autoSchema=SchemaDefinition.Create(typeof(InputData));
var col=自动模式[1];
col.ColumnType=新的VectorDataViewType(NumberDataViewType.Single,3,60);
//编造一些数据
var trainingData=新列表();
var inputData=新的inputData();
inputData.多维=新浮点[20,20];
for(inti=0;i
文档似乎表明我的设置是正确的:_

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

  • 删除
    InputData
  • 使用
    [VectorType(3,60)]
    指定每个属性的确切大小
  • 完全关闭
    [VectorType]
    属性,并使用autoschema进行设置
  • 完全关闭
    [VectorType]
    属性,而不使用autoschema让ML.net自己解决它
  • 只添加了
    [VectorType()]
    ,尽管文档中说这是针对一维数组的

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

只是好奇,在没有
autoSchema
参数的情况下加载可枚举项是否有错误?这是一个很好的建议!我试过了,但也有同样的例外。如果您执行
trainingDataView.Preview()
,会发生什么?还有,是否有可能获得数据样本?有趣的是,我在做预览时也遇到了同样的例外。我刚刚尝试在所有多维向量上添加[NoColumn]属性,异常消失了。这些有什么我做错了吗?从文档中看似乎是正确的:很好的发现!我看见你把一个问题放进去了。希望团队能很快为您找到解决方案:)只是好奇,在没有
autoSchema
参数的情况下加载枚举时是否有错误?这是一个很好的建议!我试过了,但也有同样的例外。如果您执行
trainingDataView.Preview()
,会发生什么?还有,是否有可能获得数据样本?有趣的是,我在做预览时也遇到了同样的例外。我刚刚尝试在所有多维向量上添加[NoColumn]属性,异常消失了。这些有什么我做错了吗?从文档中看似乎是正确的:很好的发现!我看见你把一个问题放进去了。希望团队能尽快为您解决:)