c# - 如何在 ML.NET 中将 ONNX 中的数据作为 float32[N,60,1] 插入
问题描述
我正在使用 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 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:'无法确定 IDataView 类型并为成员 SyncRoot 注册了自定义类型(参数'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:'不支持可变长度输入列'
解决方案
可变输入错误(不支持可变长度输入列)仅表示您的模型需要固定大小的输入。具体来说,您可以在类[VectorType(60, 1)]
中的属性之上添加属性。lstm_input
OnnxInput
推荐阅读
- python - 如何在 python 2.7 中合并两个以上的字典
- sql - 链接服务器错误:无法获取列的当前行值
- android - 我们如何在 Alert Dialogue Flutter 中播放视频
- python - 解析python中子进程调用的响应
- reactjs - 模态不隐藏 FullCalendar 元素
- python - 在 Scrapy 中提取文本地址
- reactjs - 从循环过程中反应屏幕更新
- javascript - Redux Toolkit - 'AsyncThunkAction<>' 类型的参数不可分配给 'AnyAction' 类型的参数
- node.js - 使用 Nodejs 的 DynamoDB 表计数
- php - Dompdf 浮动不浮动