| File: Experiment\SuggestedPipelineRunDetails\SuggestedPipelineRunDetail.cs | Web Access |
| Project: src\src\Microsoft.ML.AutoML\Microsoft.ML.AutoML.csproj (Microsoft.ML.AutoML) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; namespace Microsoft.ML.AutoML { internal class SuggestedPipelineRunDetail { public readonly SuggestedPipeline Pipeline; public readonly bool RunSucceeded; public readonly double Score; public Exception Exception { get; set; } public SuggestedPipelineRunDetail(SuggestedPipeline pipeline, double score, bool runSucceeded) { Pipeline = pipeline; Score = score; RunSucceeded = runSucceeded; } public static SuggestedPipelineRunDetail FromPipelineRunResult(MLContext context, PipelineScore pipelineRunResult) { return new SuggestedPipelineRunDetail(SuggestedPipeline.FromPipeline(context, pipelineRunResult.Pipeline), pipelineRunResult.Score, pipelineRunResult.RunSucceeded); } public IRunResult ToRunResult(bool isMetricMaximizing) { return new RunResult(Pipeline.Trainer.HyperParamSet, Score, isMetricMaximizing); } } internal class SuggestedPipelineRunDetail<TMetrics> : SuggestedPipelineRunDetail { public readonly TMetrics ValidationMetrics; public readonly ModelContainer ModelContainer; internal SuggestedPipelineRunDetail(SuggestedPipeline pipeline, double score, bool runSucceeded, TMetrics validationMetrics, ModelContainer modelContainer, Exception ex) : base(pipeline, score, runSucceeded) { ValidationMetrics = validationMetrics; ModelContainer = modelContainer; Exception = ex; } public RunDetail<TMetrics> ToIterationResult(IEstimator<ITransformer> preFeaturizer) { var estimator = SuggestedPipelineRunDetailUtil.PrependPreFeaturizer(Pipeline.ToEstimator(), preFeaturizer); return new RunDetail<TMetrics>(Pipeline.Trainer.TrainerName.ToString(), estimator, Pipeline.ToPipeline(), ModelContainer, ValidationMetrics, Exception); } } }