我正在评估ML.NET Model Builder(预览版)16.1.0.2027905。当我去训练时,Builder让我指定“训练时间(秒)”(参见图片):
但是,当我进入步骤6并生成代码时,我似乎找不到指定“训练时间”的位置...
ML.NET Builder在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重新训练我的模型。
答案 0 :(得分:2)
模型构建器在后台使用AutoML。它产生的代码是纯ML.NET API代码,因此它没有办法指定培训时间。
如果要使用它,则需要使用AutoML API。这样就可以指定训练时间。这是the doc进行显示的内容,但是类似于以下代码:
var settings = new RegressionExperimentSettings
{
MaxExperimentTimeInSeconds = 20,
};
这里是full sample中使用的this video。
希望有帮助!