1

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

在此处输入图像描述

但是,当我到达第 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 来重新训练我的模型。

4

1 回答 1

3

模型构建器在幕后使用 AutoML。它生成的代码是纯 ML.NET API 代码,因此它无法指定训练时间。

如果你想使用它,你需要使用 AutoML API。有了它,它就有了一种指定训练时间的方法。这是显示它的文档,但它类似于以下代码:

var settings = new RegressionExperimentSettings
{
    MaxExperimentTimeInSeconds = 20,
};

这是此视频中使用的完整示例

希望有帮助!

于 2020-06-18T13:04:54.837 回答