From 72d4ad71c90a8a72d2df54109fc545ec09b0bcb8 Mon Sep 17 00:00:00 2001 From: zewditu Hailemariam Date: Mon, 7 Aug 2023 17:06:44 -0700 Subject: [PATCH 1/5] Add target Type in convert type --- src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json | 6 ++++-- .../CodeGen/type_converter_search_space.json | 4 ++++ .../SweepableEstimator/Estimators/TypeConvert.cs | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json b/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json index 5d28914734..cbcc70dfea 100644 --- a/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json +++ b/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json @@ -217,7 +217,8 @@ "TrainingAnswerColumnName", "AnswerIndexStartColumnName", "predictedAnswerColumnName", - "TopKAnswers" + "TopKAnswers", + "TargetType" ] }, "option_type": { @@ -235,7 +236,8 @@ "anchor", "dnnModelFactory", "bertArchitecture", - "imageClassificationArchType" + "imageClassificationArchType", + "DataKind" ] } }, diff --git a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json index d91293b857..b370c7634b 100644 --- a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json +++ b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json @@ -9,6 +9,10 @@ { "name": "InputColumnNames", "type": "strings" + }, + { + "name": "TargetType", + "type": "DataKind" } ] } diff --git a/src/Microsoft.ML.AutoML/SweepableEstimator/Estimators/TypeConvert.cs b/src/Microsoft.ML.AutoML/SweepableEstimator/Estimators/TypeConvert.cs index f5e567baa0..795064a2c9 100644 --- a/src/Microsoft.ML.AutoML/SweepableEstimator/Estimators/TypeConvert.cs +++ b/src/Microsoft.ML.AutoML/SweepableEstimator/Estimators/TypeConvert.cs @@ -9,7 +9,7 @@ internal partial class ConvertType public override IEstimator BuildFromOption(MLContext context, ConvertTypeOption param) { var inputOutputPairs = AutoMlUtils.CreateInputOutputColumnPairsFromStrings(param.InputColumnNames, param.OutputColumnNames); - return context.Transforms.Conversion.ConvertType(inputOutputPairs); + return context.Transforms.Conversion.ConvertType(inputOutputPairs, param.TargetType); } } } From bf5a742005fe5c376ea51f7eca5c7e4820b409f5 Mon Sep 17 00:00:00 2001 From: zewditu Hailemariam Date: Tue, 8 Aug 2023 15:58:52 -0700 Subject: [PATCH 2/5] Add custom type "DataKind" --- .../CodeGen/search-space-schema.json | 22 ++++++++++++++++++- .../CodeGen/type_converter_search_space.json | 2 +- .../SearchSpaceGenerator.cs | 2 ++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json b/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json index cbcc70dfea..0ccb7b1fcf 100644 --- a/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json +++ b/src/Microsoft.ML.AutoML/CodeGen/search-space-schema.json @@ -46,6 +46,26 @@ "BertArchitecture.Roberta" ] }, + "dataKind": { + "type": "string", + "enum": [ + "DataKind.Int16", + "DataKind.SByte", + "DataKind.Byte", + "DataKind.UInt16", + "DataKind.Int32", + "DataKind.UInt32", + "DataKind.Int64", + "DataKind.UInt64", + "DataKind.Single", + "DataKind.Double", + "DataKind.String", + "DataKind.Boolean", + "DataKind.TimeSpan", + "DataKind.DateTime", + "DataKind.DateTimeOffset" + ] + }, "bertArchitectureArray": { "type": "array", "items": { @@ -237,7 +257,7 @@ "dnnModelFactory", "bertArchitecture", "imageClassificationArchType", - "DataKind" + "dataKind" ] } }, diff --git a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json index b370c7634b..536fa0cbf0 100644 --- a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json +++ b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json @@ -12,7 +12,7 @@ }, { "name": "TargetType", - "type": "DataKind" + "type": "dataKind" } ] } diff --git a/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs b/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs index 5480d683fa..02fcbb6e9d 100644 --- a/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs +++ b/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs @@ -56,6 +56,7 @@ public void Execute(GeneratorExecutionContext context) "dnnModelFactory" => "string", "bertArchitecture" => "BertArchitecture", "imageClassificationArchType" => "Microsoft.ML.Vision.ImageClassificationTrainer.Architecture", + "dataKind" => "DataKind", _ => throw new ArgumentException("unknown type"), }; @@ -74,6 +75,7 @@ public void Execute(GeneratorExecutionContext context) (_, "ColorsOrder") => defaultToken.GetValue(), (_, "BertArchitecture") => defaultToken.GetValue(), (_, "Microsoft.ML.Vision.ImageClassificationTrainer.Architecture") => defaultToken.GetValue(), + (_, "DataKind") => defaultToken.GetValue(), (_, _) => throw new ArgumentException("unknown"), }; From b268f58ea0578d8486adc3719ac629735211a693 Mon Sep 17 00:00:00 2001 From: zewditu Hailemariam Date: Tue, 8 Aug 2023 16:40:33 -0700 Subject: [PATCH 3/5] clean --- .../SearchSpaceGenerator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs b/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs index 02fcbb6e9d..379d9e618e 100644 --- a/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs +++ b/tools-local/Microsoft.ML.AutoML.SourceGenerator/SearchSpaceGenerator.cs @@ -56,7 +56,7 @@ public void Execute(GeneratorExecutionContext context) "dnnModelFactory" => "string", "bertArchitecture" => "BertArchitecture", "imageClassificationArchType" => "Microsoft.ML.Vision.ImageClassificationTrainer.Architecture", - "dataKind" => "DataKind", + "dataKind" => "Microsoft.ML.Data.DataKind", _ => throw new ArgumentException("unknown type"), }; @@ -75,7 +75,7 @@ public void Execute(GeneratorExecutionContext context) (_, "ColorsOrder") => defaultToken.GetValue(), (_, "BertArchitecture") => defaultToken.GetValue(), (_, "Microsoft.ML.Vision.ImageClassificationTrainer.Architecture") => defaultToken.GetValue(), - (_, "DataKind") => defaultToken.GetValue(), + (_, "Microsoft.ML.Data.DataKind") => defaultToken.GetValue(), (_, _) => throw new ArgumentException("unknown"), }; From 47e8b2f9f3f8d1671c2e2cb64a658ab04e785f57 Mon Sep 17 00:00:00 2001 From: zewditu Hailemariam Date: Tue, 8 Aug 2023 17:26:32 -0700 Subject: [PATCH 4/5] Add DataKind name space --- .../CodeGen/type_converter_search_space.json | 3 ++- .../Template/SearchSpace.cs | 3 ++- .../Template/SearchSpace.tt | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json index 536fa0cbf0..38d860e9c4 100644 --- a/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json +++ b/src/Microsoft.ML.AutoML/CodeGen/type_converter_search_space.json @@ -12,7 +12,8 @@ }, { "name": "TargetType", - "type": "dataKind" + "type": "dataKind", + "default": "DataKind.Single" } ] } diff --git a/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.cs b/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.cs index be05d616f2..409937611b 100644 --- a/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.cs +++ b/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.cs @@ -34,6 +34,7 @@ public virtual string TransformText() using Anchor = Microsoft.ML.Transforms.Image.ImageResizingEstimator.Anchor; using BertArchitecture = Microsoft.ML.TorchSharp.NasBert.BertArchitecture; using static Microsoft.ML.Vision.ImageClassificationTrainer.Architecture; +using DataKind = Microsoft.ML.Data.DataKind; #nullable enable namespace "); @@ -92,7 +93,7 @@ internal class SearchSpaceBase /// /// The string builder that generation-time code is using to assemble generated output /// - protected System.Text.StringBuilder GenerationEnvironment + public System.Text.StringBuilder GenerationEnvironment { get { diff --git a/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.tt b/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.tt index b64990f3f2..bbfad4ecb5 100644 --- a/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.tt +++ b/tools-local/Microsoft.ML.AutoML.SourceGenerator/Template/SearchSpace.tt @@ -12,6 +12,7 @@ using ResizingKind = Microsoft.ML.Transforms.Image.ImageResizingEstimator.Resizi using Anchor = Microsoft.ML.Transforms.Image.ImageResizingEstimator.Anchor; using BertArchitecture = Microsoft.ML.TorchSharp.NasBert.BertArchitecture; using static Microsoft.ML.Vision.ImageClassificationTrainer.Architecture; +using DataKind = Microsoft.ML.Data.DataKind; #nullable enable namespace <#=NameSpace#> From d60b9544e61f7be07e79e814839df22df1b2b99e Mon Sep 17 00:00:00 2001 From: zewditu Hailemariam Date: Thu, 10 Aug 2023 09:32:23 -0700 Subject: [PATCH 5/5] clean test --- ...urizerTests.AutoFeaturizer_creditapproval_test.approved.txt | 3 ++- ...urizerTests.AutoFeaturizer_newspaperchurn_test.approved.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_creditapproval_test.approved.txt b/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_creditapproval_test.approved.txt index c2bea3ba98..37287a9664 100644 --- a/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_creditapproval_test.approved.txt +++ b/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_creditapproval_test.approved.txt @@ -21,7 +21,8 @@ ], "InputColumnNames": [ "BooleanFeatures" - ] + ], + "TargetType": "Single" } }, "e2": { diff --git a/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_newspaperchurn_test.approved.txt b/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_newspaperchurn_test.approved.txt index fe234e918c..d85e26c72d 100644 --- a/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_newspaperchurn_test.approved.txt +++ b/test/Microsoft.ML.AutoML.Tests/ApprovalTests/AutoFeaturizerTests.AutoFeaturizer_newspaperchurn_test.approved.txt @@ -21,7 +21,8 @@ ], "InputColumnNames": [ "dummy for Children" - ] + ], + "TargetType": "Single" } }, "e2": {