C# 如何在ONNX中以float32[N,60,1]的形式在ML.NET中插入数据
我正在使用ML.NET,我想插入一个float32[N,60,1](如图所示)作为输入。我不知道如何传递数据。我正在尝试这门课:C# 如何在ONNX中以float32[N,60,1]的形式在ML.NET中插入数据,c#,.net,.net-core,ml.net,onnx,C#,.net,.net Core,Ml.net,Onnx,我正在使用ML.NET,我想插入一个float32[N,60,1](如图所示)作为输入。我不知道如何传递数据。我正在尝试这门课: public class OnnxInput { [ColumnName("lstm_input")] public float lstm_input { get; set; } } var input = new OnnxInput[length][]; // Here I load the data into the inp
public class OnnxInput
{
[ColumnName("lstm_input")]
public float lstm_input { get; set; }
}
var input = new OnnxInput[length][];
// Here I load the data into the input variable
var dataView = mlContext.Data.LoadFromEnumerable(input);
var pipeline = mlContext.Transforms.
ApplyOnnxModel(
modelFile: modelLocation,
inputColumnNames: new[] { TinyYoloModelSettings.ModelInput },
outputColumnNames: new[] { TinyYoloModelSettings.ModelOutput }
);
var model = pipeline.Fit(data);
创建此矩阵时,当我尝试将数据适配到管道中时,出现错误:System.ArgumentOutOfRangeException:“无法确定成员SyncRoot的IDataView类型和已注册的自定义类型(参数'rawType')”
使用此输入类尝试另一种方法:
public class OnnxInput
{
[ColumnName("lstm_input")]
public float[] lstm_input { get; set; }
}
var input = new OnnxInput[realLength];
// Here I load the data into the input variable
var dataView = mlContext.Data.LoadFromEnumerable(input);
var pipeline = mlContext.Transforms.
ApplyOnnxModel(
modelFile: modelLocation,
inputColumnNames: new[] { TinyYoloModelSettings.ModelInput },
outputColumnNames: new[] { TinyYoloModelSettings.ModelOutput }
);
var model = pipeline.Fit(data);
创建此矩阵时,当我尝试将数据放入管道时,出现错误:System.InvalidOperationException:“不支持可变长度输入列”
变量输入错误(不支持变量长度输入列))只意味着您的模型需要固定大小的输入。具体地说,您可以在OnnxInput
类中的属性lstm\u input
的顶部添加属性[VectorType(60,1)]