// local public static Pipeline GetPipeline(TaskKind task, IDataView data, string label) { var mlContext = new MLContext(); var availableTransforms = TransformInferenceApi.InferTransforms(mlContext, data, label); var availableTrainers = RecipeInference.AllowedTrainers(mlContext, task, 1); var pipeline = new InferredPipeline(availableTransforms, availableTrainers.First(), mlContext); return(pipeline.ToPipeline()); }
private void IteratePipelinesAndFit() { var stopwatch = Stopwatch.StartNew(); var transforms = TransformInferenceApi.InferTransforms(_mlContext, _trainData, _label, _puproseOverrides); var availableTrainers = RecipeInference.AllowedTrainers(_mlContext, _task, _settings.StoppingCriteria.MaxIterations); do { // get next pipeline var pipeline = PipelineSuggester.GetNextPipeline(_history, transforms, availableTrainers, _optimizingMetricInfo.IsMaximizing); // break if no candidates returned, means no valid pipeline available if (pipeline == null) { break; } // evaluate pipeline ProcessPipeline(pipeline); } while (_history.Count < _settings.StoppingCriteria.MaxIterations && stopwatch.Elapsed.TotalMinutes < _settings.StoppingCriteria.TimeOutInMinutes); }