动态类/对象ML.net的PredictionMoadel <tinput,toutput =“”> Train()

时间:2018-07-23 20:33:14

标签: ml.net

我正在使用Microsoft's ML.net library.

我想基于在运行时生成合同的模型来训练数据(这意味着在编译时不知道这些字段)。可以使用当前ML.net的Train()方法siganture来实现吗?

到目前为止,我试图通过传入TInput和TOutput对象(而不是T类)的实例来调用此Train方法。

1 个答案:

答案 0 :(得分:2)

根据文档,LearningPipeline只有一种方法Train<TIn, TOut>用于训练,这意味着TInTOut是实际的类:TIn预测的输入,TOut的输出。

底层ML.NET代码实际上并不依赖于提前了解架构:Train<TIn, TOut>方法是我们决定向用户公开的一种便捷方法。该决定的副作用是,我们基本上禁止了像您这样的用例。

当然,当您知道数据的架构时,仍然可以在运行时使用Reflection生成类签名,但这是一个尴尬的解决方法。

我们正在使用的新ML.NET API(请参阅this project中的问题)将解除这一要求:您将能够训练在编译时未知的数据。