我正在评估ML.NET模型生成器(预览版) 16.1.0.2027905。当我去训练时,Builder让我指定“训练时间(秒)”(见图):

然而,当我到达Step#6并生成代码时,我似乎找不到“训练时间”的指定位置……
ML.NET构建器在ModelBuilder.cs文件中自动为我创建此函数:
public static ITransformer TrainModel(MLContext mlContext, IDataView trainingDataView, IEstimator<ITransformer> trainingPipeline)
{
Console.WriteLine("=============== Training model ===============");
ITransformer model = trainingPipeline.Fit(trainingDataView);
Console.WriteLine("=============== End of training process ===============");
return model;
}但是我在调试器中查看了mlContext、trainingDataView、trainingPipeline对象,并没有立即看到在哪里可以指定训练时间。此外,我在全球范围内搜索了3600 (这是我训练的时间),但我没有找到任何有趣的代码。
在ML.NET中有什么简单的方法可以用秒来指定“训练时间”吗?
我之所以问这个问题,是因为我想以用户指定的训练间隔手动调用ModelBuilder.TrainModel。我不希望总是需要使用ML.NET Builder GUI来重新训练我的模型。
发布于 2020-06-18 21:04:55
模型构建器在幕后使用AutoML。它生成的代码是纯ML.NET应用编程接口代码,因此无法指定训练时间。
如果你想使用它,你需要使用AutoML应用程序接口。这样,它就有了指定训练时间的方法。下面是展示它的the doc,但它可能类似于下面的代码:
var settings = new RegressionExperimentSettings
{
MaxExperimentTimeInSeconds = 20,
};这是一个在this video中使用的full sample。
希望这能有所帮助!
https://stackoverflow.com/questions/62440229
复制相似问题