在 ML.NET 中指定训练时间的位置

Where to Specify Time to Train in ML.NET

我正在评估 ML.NET Model Builder(预览版)16.1.0.2027905。当我去训练时,Builder 让我指定 "Time to train (seconds)"(见图):

但是,当我进入第 6 步并生成代码时,我似乎无法找到指定 "Time to train" 的位置...

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 中是否有一些简单的方法可以在几秒钟内指定 "Time to train"?

我问这个问题是因为我想用用户指定的训练间隔手动调用 ModelBuilder.TrainModel。我不想总是被要求使用 ML.NET Builder GUI 来重新训练我的模型。

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

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

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

这是一个full sample on it which was used in this video

希望对您有所帮助!