带有复杂对象的ML.NET LoadFromEnumerate

时间:2019-07-16 07:28:47

标签: c# ml.net

我想从复杂的对象中创建一个IDataView

让我的对象成为这些简单的类:

class Foo
{
    public Bar bar { get; set; }
}

class Bar
{
    public int num { get; set; }
}

(当然,在我的代码中Foo中还有更多字段,其中有些是对象或集合)。

现在,我尝试使用DataOperationsCatalog.LoadFromEnumerable加载Foo的集合:

var mlContext = new MLContext();
var foos = new List<Foo>
{
    new Foo
    {
        bar = new Bar {num = 5}
    }, 
    new Foo
    {
        bar = new Bar {num = 5}
    }
}.AsEnumerable();
var dataview = mlContext.Data.LoadFromEnumerable(foos);

我得到了错误:

  

System.ArgumentOutOfRangeException:无法确定成员 bar 的IDataView类型   参数名称:rawType

即使将 Bar 对象注册为DataViewType,也没有任何改善:

DataViewTypeManager.Register(NumberDataViewType.Int32, typeof(Bar));

0 个答案:

没有答案