From 74b07c1a3dcbe0625a8f4f9f85ab985a8ff1bd9d Mon Sep 17 00:00:00 2001 From: Keren Fuentes Date: Tue, 25 Feb 2020 15:40:34 -0800 Subject: [PATCH 1/4] support for various ints --- .../ValueToKeyMappingTransformer.cs | 62 ++++++++++++++++--- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 5 ++ 2 files changed, 60 insertions(+), 7 deletions(-) diff --git a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs index 897848ed6c..5ed292c06c 100644 --- a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs @@ -789,38 +789,86 @@ private bool SaveAsOnnxCore(OnnxContext ctx, int iinfo, ColInfo info, string src OnnxNode castNode; var labelEncoderOutput = ctx.AddIntermediateVariable(NumberDataViewType.Int64, "LabelEncoderOutput", true); - if (info.TypeSrc.GetItemType().Equals(TextDataViewType.Instance)) + var type = info.TypeSrc.GetItemType(); + if (type.Equals(TextDataViewType.Instance)) { node = ctx.CreateNode(opType, srcVariableName, labelEncoderOutput, ctx.GetNodeName(opType)); var terms = GetTermsAndIds>(iinfo, out termIds); node.AddAttribute("keys_strings", terms); } - else if (info.TypeSrc.GetItemType().Equals(NumberDataViewType.Single)) + else if (type.Equals(NumberDataViewType.Single)) { node = ctx.CreateNode(opType, srcVariableName, labelEncoderOutput, ctx.GetNodeName(opType)); var terms = GetTermsAndIds(iinfo, out termIds); node.AddAttribute("keys_floats", terms); } - else if (info.TypeSrc.GetItemType().Equals(NumberDataViewType.Double)) + else if (type.Equals(NumberDataViewType.Double)) { // LabelEncoder doesn't support double tensors, so values are cast to floats var castOutput = ctx.AddIntermediateVariable(NumberDataViewType.Single, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName(opType), ""); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.Single).ToType(); castNode.AddAttribute("to", t); node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); var terms = GetTermsAndIds(iinfo, out termIds); node.AddAttribute("keys_floats", terms); } - else if (info.TypeSrc.GetItemType().Equals(NumberDataViewType.Int64)) + else if (type.Equals(NumberDataViewType.Int64)) { // LabelEncoder doesn't support mapping int64 -> int64, so values are cast to strings var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName(opType), ""); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); castNode.AddAttribute("to", t); node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + else if (type.Equals(NumberDataViewType.Int32)) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); + castNode.AddAttribute("to", t); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + else if (type.Equals(NumberDataViewType.Int16)) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); + castNode.AddAttribute("to", t); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + else if (type.Equals(NumberDataViewType.UInt64)) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + else if (type.Equals(NumberDataViewType.UInt32)) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + else if (type.Equals(NumberDataViewType.UInt16)) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); + castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); } else diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index 195f8d4634..d7ed0648e4 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -1202,6 +1202,11 @@ public void IndicateMissingValuesOnnxConversionTest() [Theory] [InlineData(DataKind.Single)] [InlineData(DataKind.Int64)] + [InlineData(DataKind.Int32)] + [InlineData(DataKind.Int16)] + [InlineData(DataKind.UInt64)] + [InlineData(DataKind.UInt32)] + [InlineData(DataKind.UInt16)] [InlineData(DataKind.Double)] [InlineData(DataKind.String)] public void ValueToKeyMappingOnnxConversionTest(DataKind valueType) From a9f01eaed76d82f9317cdfd7d01f5aab94131c20 Mon Sep 17 00:00:00 2001 From: Lynx1820 Date: Tue, 25 Feb 2020 16:45:41 -0800 Subject: [PATCH 2/4] Similar fix for KeyToValue --- src/Microsoft.ML.Data/Transforms/KeyToValue.cs | 12 ++++++++---- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 5 +++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs index 3b496b43c6..9f4bfd087e 100644 --- a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs +++ b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs @@ -512,7 +512,10 @@ public override bool SaveOnnx(OnnxContext ctx, string srcVariableName, string ds var labelEncoderOutput = dstVariableName; var labelEncoderInput = srcVariableName; - if (TypeOutput == NumberDataViewType.Double || TypeOutput == NumberDataViewType.Int64) + if (TypeOutput == NumberDataViewType.Double || TypeOutput == NumberDataViewType.Int64 || + TypeOutput == NumberDataViewType.Int32 || TypeOutput == NumberDataViewType.Int16 || + TypeOutput == NumberDataViewType.UInt64 || TypeOutput == NumberDataViewType.UInt32 || + TypeOutput == NumberDataViewType.UInt16) labelEncoderOutput = ctx.AddIntermediateVariable(TypeOutput, "CastNodeOutput", true); opType = "LabelEncoder"; @@ -520,15 +523,16 @@ public override bool SaveOnnx(OnnxContext ctx, string srcVariableName, string ds var keys = Array.ConvertAll(Enumerable.Range(1, _values.Length).ToArray(), item => Convert.ToInt64(item)); node.AddAttribute("keys_int64s", keys); - if (TypeOutput == NumberDataViewType.Int64) + if (TypeOutput == NumberDataViewType.Int64 || TypeOutput == NumberDataViewType.Int32 || + TypeOutput == NumberDataViewType.Int16 || TypeOutput == NumberDataViewType.UInt64 || + TypeOutput == NumberDataViewType.UInt32 || TypeOutput == NumberDataViewType.UInt16) { // LabelEncoder doesn't support mapping int64 -> int64, so values are converted to strings and later cast back to Int64s string[] values = Array.ConvertAll(_values.GetValues().ToArray(), item => Convert.ToString(item)); node.AddAttribute("values_strings", values); opType = "Cast"; castNode = ctx.CreateNode(opType, labelEncoderOutput, dstVariableName, ctx.GetNodeName(opType), ""); - t = InternalDataKindExtensions.ToInternalDataKind(DataKind.Int64).ToType(); - castNode.AddAttribute("to", t); + castNode.AddAttribute("to", TypeOutput.RawType); } else if (TypeOutput == NumberDataViewType.Single) { diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index d7ed0648e4..7a2ecfb79b 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -1242,6 +1242,11 @@ public void ValueToKeyMappingOnnxConversionTest(DataKind valueType) [Theory] [InlineData(DataKind.Single)] [InlineData(DataKind.Int64)] + [InlineData(DataKind.Int32)] + [InlineData(DataKind.Int16)] + [InlineData(DataKind.UInt64)] + [InlineData(DataKind.UInt32)] + [InlineData(DataKind.UInt16)] [InlineData(DataKind.Double)] [InlineData(DataKind.String)] public void KeyToValueMappingOnnxConversionTest(DataKind valueType) From 5eee2f32d6da6245367003868974539a3d545612 Mon Sep 17 00:00:00 2001 From: Lynx1820 Date: Wed, 26 Feb 2020 13:24:34 -0800 Subject: [PATCH 3/4] resolving comments --- .../Transforms/KeyToValue.cs | 11 ++-- .../ValueToKeyMappingTransformer.cs | 62 ++++++------------- 2 files changed, 26 insertions(+), 47 deletions(-) diff --git a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs index 9f4bfd087e..892493582f 100644 --- a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs +++ b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs @@ -505,18 +505,19 @@ public override bool SaveOnnx(OnnxContext ctx, string srcVariableName, string ds // Onnx expects the input keys to be int64s. But the input data can come from an ML.NET node that // may output a uint32. So cast it here to ensure that the data is treated correctly opType = "Cast"; - var castNodeOutput = ctx.AddIntermediateVariable(NumberDataViewType.Int64, "CastNodeOutput", true); + var castNodeOutput = ctx.AddIntermediateVariable(NumberDataViewType.Int64, "CastNodeOutput"); var castNode = ctx.CreateNode(opType, srcVariableName, castNodeOutput, ctx.GetNodeName(opType), ""); var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.Int64).ToType(); castNode.AddAttribute("to", t); var labelEncoderOutput = dstVariableName; var labelEncoderInput = srcVariableName; - if (TypeOutput == NumberDataViewType.Double || TypeOutput == NumberDataViewType.Int64 || + if (TypeOutput == NumberDataViewType.Double) + labelEncoderOutput = ctx.AddIntermediateVariable(NumberDataViewType.Single, "CastNodeOutput"); + else if (TypeOutput == NumberDataViewType.Int64 || TypeOutput == NumberDataViewType.UInt16 || TypeOutput == NumberDataViewType.Int32 || TypeOutput == NumberDataViewType.Int16 || - TypeOutput == NumberDataViewType.UInt64 || TypeOutput == NumberDataViewType.UInt32 || - TypeOutput == NumberDataViewType.UInt16) - labelEncoderOutput = ctx.AddIntermediateVariable(TypeOutput, "CastNodeOutput", true); + TypeOutput == NumberDataViewType.UInt64 || TypeOutput == NumberDataViewType.UInt32) + labelEncoderOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "CastNodeOutput"); opType = "LabelEncoder"; var node = ctx.CreateNode(opType, castNodeOutput, labelEncoderOutput, ctx.GetNodeName(opType)); diff --git a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs index 5ed292c06c..d33c772db0 100644 --- a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs @@ -781,13 +781,25 @@ private IEnumerable GetTermsAndIds(int iinfo, out long[] termIds) return termValues; } + private void CastInputToString(OnnxContext ctx, out OnnxNode node, out long[] termIds, string srcVariableName, int iinfo, + string opType, string labelEncoderOutput) + { + var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput"); + var castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); + var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); + castNode.AddAttribute("to", t); + node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); + var terms = GetTermsAndIds(iinfo, out termIds); + node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + } + private bool SaveAsOnnxCore(OnnxContext ctx, int iinfo, ColInfo info, string srcVariableName, string dstVariableName) { OnnxNode node; long[] termIds; string opType = "LabelEncoder"; OnnxNode castNode; - var labelEncoderOutput = ctx.AddIntermediateVariable(NumberDataViewType.Int64, "LabelEncoderOutput", true); + var labelEncoderOutput = ctx.AddIntermediateVariable(NumberDataViewType.Int64, "LabelEncoderOutput"); var type = info.TypeSrc.GetItemType(); if (type.Equals(TextDataViewType.Instance)) @@ -805,7 +817,7 @@ private bool SaveAsOnnxCore(OnnxContext ctx, int iinfo, ColInfo info, string src else if (type.Equals(NumberDataViewType.Double)) { // LabelEncoder doesn't support double tensors, so values are cast to floats - var castOutput = ctx.AddIntermediateVariable(NumberDataViewType.Single, "castOutput", true); + var castOutput = ctx.AddIntermediateVariable(NumberDataViewType.Single, "castOutput"); castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.Single).ToType(); castNode.AddAttribute("to", t); @@ -815,61 +827,27 @@ private bool SaveAsOnnxCore(OnnxContext ctx, int iinfo, ColInfo info, string src } else if (type.Equals(NumberDataViewType.Int64)) { - // LabelEncoder doesn't support mapping int64 -> int64, so values are cast to strings - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); - castNode.AddAttribute("to", t); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds ,srcVariableName, iinfo, opType, labelEncoderOutput ); } else if (type.Equals(NumberDataViewType.Int32)) { - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); - castNode.AddAttribute("to", t); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds, srcVariableName, iinfo, opType, labelEncoderOutput); } else if (type.Equals(NumberDataViewType.Int16)) { - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - var t = InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType(); - castNode.AddAttribute("to", t); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds, srcVariableName, iinfo, opType, labelEncoderOutput); } else if (type.Equals(NumberDataViewType.UInt64)) { - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds, srcVariableName, iinfo, opType, labelEncoderOutput); } else if (type.Equals(NumberDataViewType.UInt32)) { - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds, srcVariableName, iinfo, opType, labelEncoderOutput); } else if (type.Equals(NumberDataViewType.UInt16)) { - var castOutput = ctx.AddIntermediateVariable(TextDataViewType.Instance, "castOutput", true); - castNode = ctx.CreateNode("Cast", srcVariableName, castOutput, ctx.GetNodeName("Cast"), ""); - castNode.AddAttribute("to", InternalDataKindExtensions.ToInternalDataKind(DataKind.String).ToType()); - node = ctx.CreateNode(opType, castOutput, labelEncoderOutput, ctx.GetNodeName(opType)); - var terms = GetTermsAndIds(iinfo, out termIds); - node.AddAttribute("keys_strings", terms.Select(item => item.ToString())); + CastInputToString(ctx, out node, out termIds, srcVariableName, iinfo, opType, labelEncoderOutput); } else { From 0327b77870ac4859afd8ab8f0e26ce01eb9751d3 Mon Sep 17 00:00:00 2001 From: Lynx1820 Date: Wed, 26 Feb 2020 14:19:30 -0800 Subject: [PATCH 4/4] updating baselines --- .../ExcludeVariablesInOnnxConversion.txt | 18 ++++++++++++++++++ .../BreastCancer/ModelWithLessIO.txt | 18 ++++++++++++++++++ .../BreastCancer/OneHotBagPipeline.txt | 18 ++++++++++++++++++ ...onLogisticRegressionSaveModelToOnnxTest.txt | 18 ++++++++++++++++++ 4 files changed, 72 insertions(+) diff --git a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ExcludeVariablesInOnnxConversion.txt b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ExcludeVariablesInOnnxConversion.txt index 4e8133d917..22847074db 100644 --- a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ExcludeVariablesInOnnxConversion.txt +++ b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ExcludeVariablesInOnnxConversion.txt @@ -623,6 +623,24 @@ } } }, + { + "name": "LabelEncoderOutput", + "type": { + "tensorType": { + "elemType": 7, + "shape": { + "dim": [ + { + "dimValue": "-1" + }, + { + "dimValue": "1" + } + ] + } + } + } + }, { "name": "F21", "type": { diff --git a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ModelWithLessIO.txt b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ModelWithLessIO.txt index 1d72cf3487..7d3c6327be 100644 --- a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ModelWithLessIO.txt +++ b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/ModelWithLessIO.txt @@ -949,6 +949,24 @@ } } }, + { + "name": "LabelEncoderOutput", + "type": { + "tensorType": { + "elemType": 7, + "shape": { + "dim": [ + { + "dimValue": "-1" + }, + { + "dimValue": "1" + } + ] + } + } + } + }, { "name": "F21", "type": { diff --git a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/OneHotBagPipeline.txt b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/OneHotBagPipeline.txt index 4158d89aa4..bb74522954 100644 --- a/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/OneHotBagPipeline.txt +++ b/test/BaselineOutput/Common/Onnx/BinaryClassification/BreastCancer/OneHotBagPipeline.txt @@ -856,6 +856,24 @@ } } }, + { + "name": "LabelEncoderOutput", + "type": { + "tensorType": { + "elemType": 7, + "shape": { + "dim": [ + { + "dimValue": "-1" + }, + { + "dimValue": "1" + } + ] + } + } + } + }, { "name": "F21", "type": { diff --git a/test/BaselineOutput/Common/Onnx/MultiClassClassification/BreastCancer/MultiClassificationLogisticRegressionSaveModelToOnnxTest.txt b/test/BaselineOutput/Common/Onnx/MultiClassClassification/BreastCancer/MultiClassificationLogisticRegressionSaveModelToOnnxTest.txt index 672cdb5bb8..d14a42e8fd 100644 --- a/test/BaselineOutput/Common/Onnx/MultiClassClassification/BreastCancer/MultiClassificationLogisticRegressionSaveModelToOnnxTest.txt +++ b/test/BaselineOutput/Common/Onnx/MultiClassClassification/BreastCancer/MultiClassificationLogisticRegressionSaveModelToOnnxTest.txt @@ -561,6 +561,24 @@ } } }, + { + "name": "LabelEncoderOutput", + "type": { + "tensorType": { + "elemType": 7, + "shape": { + "dim": [ + { + "dimValue": "-1" + }, + { + "dimValue": "1" + } + ] + } + } + } + }, { "name": "PredictedLabel", "type": {