From c410e70e30a90560c3c00b6eb6b5e5d03872dbbd Mon Sep 17 00:00:00 2001 From: Yael Dekel Date: Fri, 24 May 2019 12:43:24 -0700 Subject: [PATCH 1/2] Add load names to Platt calibrator --- src/Microsoft.ML.Data/Prediction/Calibrator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.ML.Data/Prediction/Calibrator.cs b/src/Microsoft.ML.Data/Prediction/Calibrator.cs index 81e7642863..08791ec8c4 100644 --- a/src/Microsoft.ML.Data/Prediction/Calibrator.cs +++ b/src/Microsoft.ML.Data/Prediction/Calibrator.cs @@ -25,7 +25,7 @@ [assembly: LoadableClass(PlattCalibratorTrainer.Summary, typeof(PlattCalibratorTrainer), null, typeof(SignatureCalibrator), PlattCalibratorTrainer.UserName, PlattCalibratorTrainer.LoadName, - "SigmoidCalibration")] + "SigmoidCalibration", "Platt", "Sigmoid")] [assembly: LoadableClass(FixedPlattCalibratorTrainer.Summary, typeof(FixedPlattCalibratorTrainer), typeof(FixedPlattCalibratorTrainer.Arguments), typeof(SignatureCalibrator), FixedPlattCalibratorTrainer.UserName, From 0fc0be4802541d4d38b908dc97f5bde9f28946a6 Mon Sep 17 00:00:00 2001 From: Yael Dekel Date: Fri, 24 May 2019 14:33:47 -0700 Subject: [PATCH 2/2] Add unit test --- .../Prediction/Calibrator.cs | 2 +- .../CmdLine/CmdLineReverseTest.cs | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.ML.Data/Prediction/Calibrator.cs b/src/Microsoft.ML.Data/Prediction/Calibrator.cs index 08791ec8c4..c4cc248dc7 100644 --- a/src/Microsoft.ML.Data/Prediction/Calibrator.cs +++ b/src/Microsoft.ML.Data/Prediction/Calibrator.cs @@ -30,7 +30,7 @@ [assembly: LoadableClass(FixedPlattCalibratorTrainer.Summary, typeof(FixedPlattCalibratorTrainer), typeof(FixedPlattCalibratorTrainer.Arguments), typeof(SignatureCalibrator), FixedPlattCalibratorTrainer.UserName, FixedPlattCalibratorTrainer.LoadName, - "FixedSigmoidCalibration")] + "FixedSigmoidCalibration", "FixedPlatt")] [assembly: LoadableClass(PavCalibratorTrainer.Summary, typeof(PavCalibratorTrainer), null, typeof(SignatureCalibrator), PavCalibratorTrainer.UserName, diff --git a/test/Microsoft.ML.Predictor.Tests/CmdLine/CmdLineReverseTest.cs b/test/Microsoft.ML.Predictor.Tests/CmdLine/CmdLineReverseTest.cs index 199d7fa1b2..2d5318c5fc 100644 --- a/test/Microsoft.ML.Predictor.Tests/CmdLine/CmdLineReverseTest.cs +++ b/test/Microsoft.ML.Predictor.Tests/CmdLine/CmdLineReverseTest.cs @@ -3,8 +3,11 @@ // See the LICENSE file in the project root for more information. using System.Reflection; +using Microsoft.ML.Calibrators; using Microsoft.ML.CommandLine; +using Microsoft.ML.Internal.Utilities; using Microsoft.ML.Runtime; +using Microsoft.ML.TestFramework; using Xunit; namespace Microsoft.ML.RunTests @@ -73,6 +76,26 @@ public void ArgumentParseTest() Assert.Equal(innerArg3, testArg); } + [Fact] + [TestCategory("Cmd Parsing")] + public void NewTest() + { + var ml = new MLContext(); + ml.AddStandardComponents(); + var classes = Utils.MarshalInvoke(ml.ComponentCatalog.FindLoadableClasses, typeof(SignatureCalibrator)); + foreach (var cls in classes) + { + var factory = CmdParser.CreateComponentFactory(typeof(IComponentFactory), typeof(SignatureCalibrator), cls.LoadNames[0]); + var calibrator = ((IComponentFactory)factory).CreateComponent(ml); + } + var components = ml.ComponentCatalog.GetAllComponents(typeof(ICalibratorTrainerFactory)); + foreach (var component in components) + { + var factory = CmdParser.CreateComponentFactory(typeof(IComponentFactory), typeof(SignatureCalibrator), component.Aliases[0]); + var calibrator = ((IComponentFactory)factory).CreateComponent(ml); + } + } + private delegate void SignatureSimpleComponent(); private class SimpleArg