0

我发现的 ML.Net 示例都使用 TextLoader 通过 csv 等加载数据。

如果没有 TextLoader,如何将数据加载到培训师,

我正在将大量数据流式传输到列表

var pipeline = new LearningPipeline
{
    new Microsoft.ML.Data.TextLoader(_datapath).CreateFrom<Match>(useHeader: true, separator: ','),
    …

是否有一个实现接受 T[] ..从持续的角度来看,持续将 csv 文件写入磁盘似乎是很多不必要的 IO ,尤其是在训练功能锁定文件的情况下。意味着每个活动训练实例有多个文件。

4

2 回答 2

1

使用现有的LearningPipelineAPI,CollectionDataSource可用于训练已在内存中的数据:

var pipeline = new LearningPipeline();
var data = new List<IrisData>() {
    new IrisData { SepalLength = 1f, SepalWidth = 1f, PetalLength=0.3f, PetalWidth=5.1f, Label=1},
    new IrisData { SepalLength = 1f, SepalWidth = 1f, PetalLength=0.3f, PetalWidth=5.1f, Label=1},
    new IrisData { SepalLength = 1.2f, SepalWidth = 0.5f, PetalLength=0.3f, PetalWidth=5.1f, Label=0}
};
var collection = CollectionDataSource.Create(data);

pipeline.Add(collection);
pipeline.Add(new ColumnConcatenator(outputColumn: "Features",
    "SepalLength", "SepalWidth", "PetalLength", "PetalWidth"));
pipeline.Add(new StochasticDualCoordinateAscentClassifier());
var model = pipeline.Train<IrisData, IrisPrediction>();

样品取自这里

随着新的即将推出的 ML.NET API,这将发生变化,并且将提供新的示例来展示如何做到这一点。

注意:我在 ML.NET 团队。

于 2018-09-22T20:04:18.750 回答
0

来自字符串而不是文件的 ml.net 训练模型输入的可能重复项

您可以使用 ML.NET 0.2 版中引入的 CollectionDataSource。

于 2018-09-22T20:07:17.200 回答