C# 即使我有数据,ML.Net AutoML仍获得空引用异常?
我正在学习ML.Net并尝试使用AutoMLAPI,得到一个空引用异常。这个问题已经用我最近学到的知识和最少的代码进行了更新 把这个放在VSCode中,你也会经历一个二维向量爆炸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
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)]
- 完全关闭
属性,并使用autoschema进行设置[VectorType]
- 完全关闭
属性,而不使用autoschema让ML.net自己解决它[VectorType]
- 只添加了
,尽管文档中说这是针对一维数组的[VectorType()]
我现在的问题是-在ML.Net的AutoML部分中使用超过1维的向量的正确方法是什么?这是可能的吗?只是好奇,在没有
autoSchema
参数的情况下加载可枚举项是否有错误?这是一个很好的建议!我试过了,但也有同样的例外。如果您执行trainingDataView.Preview()
,会发生什么?还有,是否有可能获得数据样本?有趣的是,我在做预览时也遇到了同样的例外。我刚刚尝试在所有多维向量上添加[NoColumn]属性,异常消失了。这些有什么我做错了吗?从文档中看似乎是正确的:很好的发现!我看见你把一个问题放进去了。希望团队能很快为您找到解决方案:)只是好奇,在没有autoSchema
参数的情况下加载枚举时是否有错误?这是一个很好的建议!我试过了,但也有同样的例外。如果您执行trainingDataView.Preview()
,会发生什么?还有,是否有可能获得数据样本?有趣的是,我在做预览时也遇到了同样的例外。我刚刚尝试在所有多维向量上添加[NoColumn]属性,异常消失了。这些有什么我做错了吗?从文档中看似乎是正确的:很好的发现!我看见你把一个问题放进去了。希望团队能尽快为您解决:)