Skip to content

Commit cd5e241

Browse files
committed
Update TestAutoInference to use correct Environment.
1 parent db51f3d commit cd5e241

File tree

1 file changed

+47
-12
lines changed

1 file changed

+47
-12
lines changed

test/Microsoft.ML.Predictor.Tests/TestAutoInference.cs

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public void TestLearn()
7474
[Fact(Skip = "Need CoreTLC specific baseline update")]
7575
public void TestTextDatasetLearn()
7676
{
77-
using (var env = new ConsoleEnvironment())
77+
using (var env = new ConsoleEnvironment()
78+
.AddStandardComponents()) // AutoInference uses ComponentCatalog to find all learners
7879
{
7980
string pathData = GetDataPath(@"../UnitTest/tweets_labeled_10k_test_validation.tsv");
8081
int batchSize = 5;
@@ -133,29 +134,43 @@ public void TestPipelineNodeCloning()
133134
}
134135
}
135136

136-
/*[Fact]
137+
[Fact]
137138
public void TestHyperparameterFreezing()
138139
{
139140
string pathData = GetDataPath("adult.train");
140141
int numOfSampleRows = 1000;
141142
int batchSize = 1;
142143
int numIterations = 10;
143144
int numTransformLevels = 3;
144-
using (var env = new ConsoleEnvironment())
145+
using (var env = new ConsoleEnvironment()
146+
.AddStandardComponents()) // AutoInference uses ComponentCatalog to find all learners
145147
{
146148
SupportedMetric metric = PipelineSweeperSupportedMetrics.GetSupportedMetric(PipelineSweeperSupportedMetrics.Metrics.Auc);
147149

150+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 1");
151+
System.Console.WriteLine("ERIC: " + FullTestName + " 1");
152+
Log("ERIC: " + FullTestName + " 1");
153+
148154
// Using the simple, uniform random sampling (with replacement) brain
149-
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(Env);
155+
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(env);
150156

151157
// Run initial experiments
152-
var amls = AutoInference.InferPipelines(Env, autoMlBrain, pathData, "", out var _, numTransformLevels, batchSize,
158+
var amls = AutoInference.InferPipelines(env, autoMlBrain, pathData, "", out var _, numTransformLevels, batchSize,
153159
metric, out var bestPipeline, numOfSampleRows, new IterationTerminator(numIterations),
154160
MacroUtils.TrainerKinds.SignatureBinaryClassifierTrainer);
155161

162+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 2");
163+
System.Console.WriteLine("ERIC: " + FullTestName + " 2");
164+
Log("ERIC: " + FullTestName + " 2");
165+
156166
// Clear results
157167
amls.ClearEvaluatedPipelines();
158168

169+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + "3");
170+
System.Console.WriteLine("ERIC: " + FullTestName + " 3");
171+
Log("ERIC: " + FullTestName + " 3");
172+
173+
159174
// Get space, remove transforms and all but one learner, freeze hyperparameters on learner.
160175
var space = amls.GetSearchSpace();
161176
var transforms = space.Item1.Where(t =>
@@ -164,22 +179,40 @@ public void TestHyperparameterFreezing()
164179
var hyperParam = learners[0].PipelineNode.SweepParams.First();
165180
var frozenParamValue = hyperParam.RawValue;
166181
hyperParam.Frozen = true;
182+
183+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 4");
184+
System.Console.WriteLine("ERIC: " + FullTestName + " 4");
185+
Log("ERIC: " + FullTestName + " 4");
186+
167187
amls.UpdateSearchSpace(learners, transforms);
168188

189+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 5");
190+
System.Console.WriteLine("ERIC: " + FullTestName + " 5");
191+
Log("ERIC: " + FullTestName + " 5");
192+
193+
169194
// Allow for one more iteration
170195
amls.UpdateTerminator(new IterationTerminator(numIterations + 1));
171196

197+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 6");
198+
System.Console.WriteLine("ERIC: " + FullTestName + " 6");
199+
Log("ERIC: " + FullTestName + " 6");
200+
172201
// Do learning. Only retained learner should be left in all pipelines.
173202
bestPipeline = amls.InferPipelines(numTransformLevels, batchSize, numOfSampleRows);
174203

204+
System.Diagnostics.Debug.WriteLine("ERIC: " + FullTestName + " 7");
205+
System.Console.WriteLine("ERIC: " + FullTestName + " 7");
206+
Log("ERIC: " + FullTestName + " 7");
207+
175208
// Make sure all pipelines have retained learner
176209
Assert.True(amls.GetAllEvaluatedPipelines().All(p => p.Learner.LearnerName == learners[0].LearnerName));
177210

178211
// Make sure hyperparameter value did not change
179212
Assert.NotNull(bestPipeline);
180213
Assert.Equal(bestPipeline.Learner.PipelineNode.SweepParams.First().RawValue, frozenParamValue);
181214
}
182-
}*/
215+
}
183216

184217
[Fact(Skip = "Dataset not available.")]
185218
public void TestRegressionPipelineWithMinimizingMetric()
@@ -189,15 +222,16 @@ public void TestRegressionPipelineWithMinimizingMetric()
189222
int batchSize = 5;
190223
int numIterations = 10;
191224
int numTransformLevels = 1;
192-
using (var env = new ConsoleEnvironment())
225+
using (var env = new ConsoleEnvironment()
226+
.AddStandardComponents()) // AutoInference uses ComponentCatalog to find all learners
193227
{
194228
SupportedMetric metric = PipelineSweeperSupportedMetrics.GetSupportedMetric(PipelineSweeperSupportedMetrics.Metrics.AccuracyMicro);
195229

196230
// Using the simple, uniform random sampling (with replacement) brain
197-
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(Env);
231+
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(env);
198232

199233
// Run initial experiments
200-
var amls = AutoInference.InferPipelines(Env, autoMlBrain, pathData, "", out var _, numTransformLevels, batchSize,
234+
var amls = AutoInference.InferPipelines(env, autoMlBrain, pathData, "", out var _, numTransformLevels, batchSize,
201235
metric, out var bestPipeline, numOfSampleRows, new IterationTerminator(numIterations),
202236
MacroUtils.TrainerKinds.SignatureRegressorTrainer);
203237

@@ -223,15 +257,16 @@ public void TestLearnerConstrainingByName()
223257
int numIterations = 1;
224258
int numTransformLevels = 2;
225259
var retainedLearnerNames = new[] { $"LogisticRegressionBinaryClassifier", $"FastTreeBinaryClassifier" };
226-
using (var env = new ConsoleEnvironment())
260+
using (var env = new ConsoleEnvironment()
261+
.AddStandardComponents()) // AutoInference uses ComponentCatalog to find all learners
227262
{
228263
SupportedMetric metric = PipelineSweeperSupportedMetrics.GetSupportedMetric(PipelineSweeperSupportedMetrics.Metrics.Auc);
229264

230265
// Using the simple, uniform random sampling (with replacement) brain.
231-
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(Env);
266+
PipelineOptimizerBase autoMlBrain = new UniformRandomEngine(env);
232267

233268
// Run initial experiment.
234-
var amls = AutoInference.InferPipelines(Env, autoMlBrain, pathData, "", out var _,
269+
var amls = AutoInference.InferPipelines(env, autoMlBrain, pathData, "", out var _,
235270
numTransformLevels, batchSize, metric, out var _, numOfSampleRows,
236271
new IterationTerminator(numIterations), MacroUtils.TrainerKinds.SignatureBinaryClassifierTrainer);
237272

0 commit comments

Comments
 (0)