Skip to content

Commit f379b07

Browse files
authored
Fixed bugs in OptionalColumnTransform and ColumnSelecting (#4887)
1 parent 25ebe4f commit f379b07

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/Microsoft.ML.Data/Transforms/ColumnSelecting.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -732,19 +732,18 @@ IDataTransform ITransformTemplate.ApplyToData(IHostEnvironment env, IDataView ne
732732

733733
public void SaveAsOnnx(OnnxContext ctx)
734734
{
735-
var droppedCols = new HashSet<int>(Enumerable.Range(0, InputSchema.Count));
736-
737735
var outputToInputMap = _mapper.OutputToInputMap;
738736
for(int i = 0; i < outputToInputMap.Length; i++)
739737
{
740738
var srcCol = InputSchema[outputToInputMap[i]];
741739
var dstCol = OutputSchema[i];
740+
if (!ctx.ContainsColumn(srcCol.Name) || dstCol.IsHidden)
741+
continue;
742+
742743
var srcVariable = ctx.GetVariableName(srcCol.Name);
743744
var dstVariable = ctx.AddIntermediateVariable(dstCol.Type, dstCol.Name, true);
744745
string opType = "Identity";
745746
ctx.CreateNode(opType, srcVariable, dstVariable, ctx.GetNodeName(opType), "");
746-
747-
droppedCols.Remove(srcCol.Index);
748747
}
749748
}
750749
}

src/Microsoft.ML.Transforms/OptionalColumnTransform.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,12 @@ public void SaveAsOnnx(OnnxContext ctx)
511511
if (!ctx.ContainsColumn(inputColumnName))
512512
continue;
513513

514-
if (!SaveAsOnnxCore(ctx, ctx.GetVariableName(inputColumnName), _bindings.ColumnTypes[iinfo]))
514+
// If there is already a column of this name, don't add this column as an OptionalColumn/Initializer
515+
var srcVariableName = ctx.GetVariableName(inputColumnName);
516+
if (srcVariableName != inputColumnName)
517+
continue;
518+
519+
if (!SaveAsOnnxCore(ctx, srcVariableName, _bindings.ColumnTypes[iinfo]))
515520
ctx.RemoveColumn(inputColumnName, true);
516521
}
517522
}

0 commit comments

Comments
 (0)