Esempio n. 1
0
        public async Task AutoMLExperiment_return_current_best_trial_when_ct_is_canceled_with_trial_completed_Async()
        {
            var context  = new MLContext(1);
            var pipeline = context.Transforms.Concatenate("Features", "Features")
                           .Append(context.Auto().Regression());

            var dummyTrainer = new DummyTrialRunner(context, 1);
            var experiment   = context.Auto().CreateExperiment();

            experiment.SetPipeline(pipeline)
            .SetDataset(GetDummyData(), 10)
            .SetEvaluateMetric(RegressionMetric.RootMeanSquaredError, "Label")
            .SetTrainingTimeInSeconds(100)
            .SetTrialRunner(dummyTrainer);

            var cts = new CancellationTokenSource();

            context.Log += (o, e) =>
            {
                if (e.RawMessage.Contains("Update Completed Trial"))
                {
                    cts.CancelAfter(100);
                }
            };

            var res = await experiment.RunAsync(cts.Token);

            res.Metric.Should().BeGreaterThan(0);
        }
Esempio n. 2
0
        public async Task AutoMLExperiment_throw_timeout_exception_when_ct_is_canceled_and_no_trial_completed_Async()
        {
            var context  = new MLContext(1);
            var pipeline = context.Transforms.Concatenate("Features", "Features")
                           .Append(context.Auto().Regression());
            var dummyTrainer = new DummyTrialRunner(context, 5);
            var experiment   = context.Auto().CreateExperiment();

            experiment.SetPipeline(pipeline)
            .SetDataset(GetDummyData(), 10)
            .SetEvaluateMetric(RegressionMetric.RootMeanSquaredError, "Label")
            .SetTrainingTimeInSeconds(1)
            .SetTrialRunner(dummyTrainer);

            var cts = new CancellationTokenSource();

            context.Log += (o, e) =>
            {
                if (e.RawMessage.Contains("Update Running Trial"))
                {
                    cts.Cancel();
                }
            };

            var runExperimentAction = async() => await experiment.RunAsync(cts.Token);

            await runExperimentAction.Should().ThrowExactlyAsync <TimeoutException>();
        }
Esempio n. 3
0
        public async Task AutoMLExperiment_finish_training_when_time_is_up_Async()
        {
            var context  = new MLContext(1);
            var pipeline = context.Transforms.Concatenate("Features", "Features")
                           .Append(context.Auto().Regression());

            var dummyTrainer = new DummyTrialRunner(context, 1);
            var experiment   = context.Auto().CreateExperiment();

            experiment.SetPipeline(pipeline)
            .SetDataset(GetDummyData(), 10)
            .SetEvaluateMetric(RegressionMetric.RootMeanSquaredError, "Label")
            .SetTrainingTimeInSeconds(5)
            .SetTrialRunner(dummyTrainer);

            var cts = new CancellationTokenSource();

            cts.CancelAfter(10 * 1000);

            var res = await experiment.RunAsync(cts.Token);

            res.Metric.Should().BeGreaterThan(0);
            cts.IsCancellationRequested.Should().BeFalse();
        }