diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Calibrator.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Calibrator.cs index 72903b217c..eb46a9683a 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Calibrator.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Calibrator.cs @@ -32,7 +32,7 @@ public static void Calibration() { Separators = new[] { '\t' }, HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Sentiment", DataKind.BL, 0), new TextLoader.Column("SentimentText", DataKind.Text, 1) diff --git a/src/Microsoft.ML.Core/CommandLine/CmdParser.cs b/src/Microsoft.ML.Core/CommandLine/CmdParser.cs index 05350564cf..3a7dfce5b1 100644 --- a/src/Microsoft.ML.Core/CommandLine/CmdParser.cs +++ b/src/Microsoft.ML.Core/CommandLine/CmdParser.cs @@ -474,9 +474,10 @@ private static ArgumentInfo GetArgumentInfo(Type type, object defaults) Contracts.Check(!field.IsStatic && !field.IsInitOnly && !field.IsLiteral); bool isDefault = attr is DefaultArgumentAttribute; if (isDefault && def != null) - throw Contracts.Except("Duplicate default argument '{0}' vs '{1}'", def.LongName, field.Name); + throw Contracts.Except($"Duplicate default argument '{def.LongName}' vs '{field.Name}'"); + + string name = ArgCase(attr.Name ?? field.Name); - string name = ArgCase(field.Name); string[] nicks; // Semantics of ShortName: // The string provided represents an array of names separated by commas and spaces, once empty entries are removed. @@ -494,13 +495,13 @@ private static ArgumentInfo GetArgumentInfo(Type type, object defaults) Contracts.Assert(!isDefault || nicks == null); if (map.ContainsKey(name.ToLowerInvariant())) - throw Contracts.Except("Duplicate name '{0}' in argument type '{1}'", name, type.Name); + throw Contracts.Except($"Duplicate name '{name}' in argument type '{type.Name}'"); if (nicks != null) { foreach (var nick in nicks) { if (map.ContainsKey(nick.ToLowerInvariant())) - throw Contracts.Except("Duplicate name '{0}' in argument type '{1}'", nick, type.Name); + throw Contracts.Except($"Duplicate name '{nick}' in argument type '{type.Name}'"); } } diff --git a/src/Microsoft.ML.Data/Commands/CrossValidationCommand.cs b/src/Microsoft.ML.Data/Commands/CrossValidationCommand.cs index 92b866254f..33507b343c 100644 --- a/src/Microsoft.ML.Data/Commands/CrossValidationCommand.cs +++ b/src/Microsoft.ML.Data/Commands/CrossValidationCommand.cs @@ -58,8 +58,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.LastOccurenceWins, HelpText = "Column to use for stratification", ShortName = "strat", SortOrder = 7)] public string StratificationColumn; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", ShortName = "col", SortOrder = 10)] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.LastOccurenceWins, HelpText = "Number of folds in k-fold cross-validation", ShortName = "k")] public int NumFolds = 2; @@ -73,8 +74,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.LastOccurenceWins, HelpText = "Whether we should cache input training data", ShortName = "cache")] public bool? CacheData; - [Argument(ArgumentType.Multiple, HelpText = "Transforms to apply prior to splitting the data into folds", ShortName = "prexf", SignatureType = typeof(SignatureDataTransform))] - public KeyValuePair>[] PreTransform; + [Argument(ArgumentType.Multiple, HelpText = "Transforms to apply prior to splitting the data into folds", + Name = "PreTransform", ShortName = "prexf", SignatureType = typeof(SignatureDataTransform))] + public KeyValuePair>[] PreTransforms; [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "The validation data file", ShortName = "valid")] public string ValidationFile; @@ -153,7 +155,7 @@ private void RunCore(IChannel ch, string cmd) IDataLoader loader = CreateRawLoader(); // If the per-instance results are requested and there is no name column, add a GenerateNumberTransform. - var preXf = Args.PreTransform; + var preXf = Args.PreTransforms; if (!string.IsNullOrEmpty(Args.OutputDataFile)) { string name = TrainUtils.MatchNameOrDefaultOrNull(ch, loader.Schema, nameof(Args.NameColumn), Args.NameColumn, DefaultColumnNames.Name); @@ -167,7 +169,7 @@ private void RunCore(IChannel ch, string cmd) (env, input) => { var args = new GenerateNumberTransform.Arguments(); - args.Column = new[] { new GenerateNumberTransform.Column() { Name = DefaultColumnNames.Name }, }; + args.Columns = new[] { new GenerateNumberTransform.Column() { Name = DefaultColumnNames.Name }, }; args.UseCounter = true; return new GenerateNumberTransform(env, args, input); })) @@ -263,7 +265,7 @@ private RoleMappedData ApplyAllTransformsToData(IHostEnvironment env, IChannel c /// private RoleMappedData CreateRoleMappedData(IHostEnvironment env, IChannel ch, IDataView data, ITrainer trainer) { - foreach (var kvp in Args.Transform) + foreach (var kvp in Args.Transforms) data = kvp.Value.CreateComponent(env, data); var schema = data.Schema; @@ -276,7 +278,7 @@ private RoleMappedData CreateRoleMappedData(IHostEnvironment env, IChannel ch, I TrainUtils.AddNormalizerIfNeeded(env, ch, trainer, ref data, features, Args.NormalizeFeatures); // Training pipe and examples. - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); return new RoleMappedData(data, label, features, group, weight, name, customCols); } @@ -314,7 +316,7 @@ private string GetSplitColumn(IChannel ch, IDataView input, ref IDataView output var keyGenArgs = new GenerateNumberTransform.Arguments(); var col = new GenerateNumberTransform.Column(); col.Name = stratificationColumn; - keyGenArgs.Column = new[] { col }; + keyGenArgs.Columns = new[] { col }; output = new GenerateNumberTransform(Host, keyGenArgs, input); } else diff --git a/src/Microsoft.ML.Data/Commands/DataCommand.cs b/src/Microsoft.ML.Data/Commands/DataCommand.cs index 1cdd0f9d05..cd5e6f4676 100644 --- a/src/Microsoft.ML.Data/Commands/DataCommand.cs +++ b/src/Microsoft.ML.Data/Commands/DataCommand.cs @@ -54,8 +54,9 @@ public abstract class ArgumentsBase HelpText = "Desired degree of parallelism in the data pipeline", ShortName = "n")] public int? Parallel; - [Argument(ArgumentType.Multiple, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Transform", ShortName = "xf", SignatureType = typeof(SignatureDataTransform))] - public KeyValuePair>[] Transform; + [Argument(ArgumentType.Multiple, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, + HelpText = "Transform", Name ="Transform", ShortName = "xf", SignatureType = typeof(SignatureDataTransform))] + public KeyValuePair>[] Transforms; } [BestFriend] @@ -134,9 +135,9 @@ protected virtual void SendTelemetryCore(IPipe pipe) { Contracts.AssertValue(pipe); - if (Args.Transform != null) + if (Args.Transforms != null) { - foreach (var transform in Args.Transform) + foreach (var transform in Args.Transforms) SendTelemetryComponent(pipe, transform.Value); } } @@ -293,8 +294,8 @@ protected void LoadModelObjects( trainPipe = pipe; } - if (Utils.Size(Args.Transform) > 0) - pipe = CompositeDataLoader.Create(Host, pipe, Args.Transform); + if (Utils.Size(Args.Transforms) > 0) + pipe = CompositeDataLoader.Create(Host, pipe, Args.Transforms); // Next consider loading the training data's role mapped schema. trainSchema = null; @@ -330,7 +331,7 @@ protected IDataLoader CreateLoader(Func[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.Multiple, HelpText = "Evaluator to use", ShortName = "eval", SignatureType = typeof(SignatureMamlEvaluator))] public IComponentFactory Evaluator; @@ -155,7 +156,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData args.GroupColumn, DefaultColumnNames.GroupId); string weight = TrainUtils.MatchNameOrDefaultOrNull(ch, schema, nameof(Arguments.WeightColumn), args.WeightColumn, DefaultColumnNames.Weight); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, args.CustomColumns); ch.Trace("Creating evaluator"); IMamlEvaluator eval = args.Evaluator?.CreateComponent(env) ?? @@ -183,8 +184,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Name column name", ShortName = "name", SortOrder = 6)] public string NameColumn = DefaultColumnNames.Name; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", ShortName = "col", SortOrder = 10)] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name ="CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.Multiple, HelpText = "Evaluator to use", ShortName = "eval", SignatureType = typeof(SignatureMamlEvaluator))] public IComponentFactory Evaluator; @@ -232,7 +234,7 @@ private void RunCore(IChannel ch) Args.WeightColumn, DefaultColumnNames.Weight); string name = TrainUtils.MatchNameOrDefaultOrNull(ch, schema, nameof(Arguments.NameColumn), Args.NameColumn, DefaultColumnNames.Name); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); ch.Trace("Creating evaluator"); var evaluator = Args.Evaluator?.CreateComponent(Host) ?? diff --git a/src/Microsoft.ML.Data/Commands/SaveDataCommand.cs b/src/Microsoft.ML.Data/Commands/SaveDataCommand.cs index 2a36ac3445..8d1f0a7bfe 100644 --- a/src/Microsoft.ML.Data/Commands/SaveDataCommand.cs +++ b/src/Microsoft.ML.Data/Commands/SaveDataCommand.cs @@ -92,7 +92,7 @@ internal sealed class ShowDataCommand : DataCommand.ImplBase[] CustomColumn; + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.Multiple, HelpText = "Scorer to use", SignatureType = typeof(SignatureDataScorer))] public TScorerFactory Scorer; @@ -70,8 +70,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to output all columns or just scores", ShortName = "all")] public bool? OutputAllColumns; - [Argument(ArgumentType.Multiple, HelpText = "What columns to output beyond score columns, if outputAllColumns=-.", ShortName = "outCol")] - public string[] OutputColumn; + [Argument(ArgumentType.Multiple, HelpText = "What columns to output beyond score columns, if outputAllColumns=-.", + Name = "OutputColumn", ShortName = "outCol")] + public string[] OutputColumns; } internal const string Summary = "Scores a data file."; @@ -114,7 +115,7 @@ private void RunCore(IChannel ch) nameof(Args.FeatureColumn), Args.FeatureColumn, DefaultColumnNames.Features); string group = TrainUtils.MatchNameOrDefaultOrNull(ch, loader.Schema, nameof(Args.GroupColumn), Args.GroupColumn, DefaultColumnNames.GroupId); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); var schema = new RoleMappedSchema(loader.Schema, label: null, feature: feat, group: group, custom: customCols, opt: true); var mapper = bindable.Bind(Host, schema); @@ -156,20 +157,20 @@ private void RunCore(IChannel ch) bool outputAllColumns = Args.OutputAllColumns == true - || (Args.OutputAllColumns == null && Utils.Size(Args.OutputColumn) == 0 && outputIsBinary); + || (Args.OutputAllColumns == null && Utils.Size(Args.OutputColumns) == 0 && outputIsBinary); bool outputNamesAndLabels = - Args.OutputAllColumns == true || Utils.Size(Args.OutputColumn) == 0; + Args.OutputAllColumns == true || Utils.Size(Args.OutputColumns) == 0; - if (Args.OutputAllColumns == true && Utils.Size(Args.OutputColumn) != 0) - ch.Warning(nameof(Args.OutputAllColumns) + "=+ always writes all columns irrespective of " + nameof(Args.OutputColumn) + " specified."); + if (Args.OutputAllColumns == true && Utils.Size(Args.OutputColumns) != 0) + ch.Warning(nameof(Args.OutputAllColumns) + "=+ always writes all columns irrespective of " + nameof(Args.OutputColumns) + " specified."); - if (!outputAllColumns && Utils.Size(Args.OutputColumn) != 0) + if (!outputAllColumns && Utils.Size(Args.OutputColumns) != 0) { - foreach (var outCol in Args.OutputColumn) + foreach (var outCol in Args.OutputColumns) { if (!loader.Schema.TryGetColumnIndex(outCol, out int dummyColIndex)) - throw ch.ExceptUserArg(nameof(Arguments.OutputColumn), "Column '{0}' not found.", outCol); + throw ch.ExceptUserArg(nameof(Arguments.OutputColumns), "Column '{0}' not found.", outCol); } } @@ -226,7 +227,7 @@ private bool ShouldAddColumn(Schema schema, int i, uint scoreSet, bool outputNam break; } } - if (Args.OutputColumn != null && Array.FindIndex(Args.OutputColumn, schema[i].Name.Equals) >= 0) + if (Args.OutputColumns != null && Array.FindIndex(Args.OutputColumns, schema[i].Name.Equals) >= 0) return true; return false; } diff --git a/src/Microsoft.ML.Data/Commands/TestCommand.cs b/src/Microsoft.ML.Data/Commands/TestCommand.cs index ad912a348f..40f6621ab5 100644 --- a/src/Microsoft.ML.Data/Commands/TestCommand.cs +++ b/src/Microsoft.ML.Data/Commands/TestCommand.cs @@ -39,8 +39,10 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Name column name", ShortName = "name", SortOrder = 6)] public string NameColumn = DefaultColumnNames.Name; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", ShortName = "col", SortOrder = 10)] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, + HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.Multiple, HelpText = "Scorer to use", NullName = "", SortOrder = 101, SignatureType = typeof(SignatureDataScorer))] public IComponentFactory Scorer; @@ -106,7 +108,7 @@ private void RunCore(IChannel ch) Args.WeightColumn, DefaultColumnNames.Weight); string name = TrainUtils.MatchNameOrDefaultOrNull(ch, schema, nameof(Args.NameColumn), Args.NameColumn, DefaultColumnNames.Name); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); // Score. ch.Trace("Scoring and evaluating"); diff --git a/src/Microsoft.ML.Data/Commands/TrainCommand.cs b/src/Microsoft.ML.Data/Commands/TrainCommand.cs index 670c809f09..7aed0d7dac 100644 --- a/src/Microsoft.ML.Data/Commands/TrainCommand.cs +++ b/src/Microsoft.ML.Data/Commands/TrainCommand.cs @@ -54,8 +54,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Name column name", ShortName = "name", SortOrder = 6)] public string NameColumn = DefaultColumnNames.Name; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", ShortName = "col", SortOrder = 10)] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.LastOccurenceWins, HelpText = "Normalize option for the feature column", ShortName = "norm")] public NormalizeOption NormalizeFeatures = NormalizeOption.Auto; @@ -157,7 +158,7 @@ private void RunCore(IChannel ch, string cmd) ch.Trace("Binding columns"); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); var data = new RoleMappedData(view, label, feature, group, weight, name, customCols); // REVIEW: Unify the code that creates validation examples in Train, TrainTest and CV commands. @@ -516,9 +517,9 @@ public static IEnumerable> CheckAndGenerateCust return Enumerable.Empty>(); foreach (var kindName in customColumnArg) { - ectx.CheckUserArg(!string.IsNullOrWhiteSpace(kindName.Value), nameof(TrainCommand.Arguments.CustomColumn), "Names for columns with custom kind must not be empty"); + ectx.CheckUserArg(!string.IsNullOrWhiteSpace(kindName.Value), nameof(TrainCommand.Arguments.CustomColumns), "Names for columns with custom kind must not be empty"); if (string.IsNullOrWhiteSpace(kindName.Key)) - throw ectx.ExceptUserArg(nameof(TrainCommand.Arguments.CustomColumn), "Custom column with name '{0}' needs a kind. Use col[]={0}", kindName.Value); + throw ectx.ExceptUserArg(nameof(TrainCommand.Arguments.CustomColumns), "Custom column with name '{0}' needs a kind. Use col[]={0}", kindName.Value); } return customColumnArg.Select(kindName => new ColumnRole(kindName.Key).Bind(kindName.Value)); } diff --git a/src/Microsoft.ML.Data/Commands/TrainTestCommand.cs b/src/Microsoft.ML.Data/Commands/TrainTestCommand.cs index 96f3eaace2..643be09886 100644 --- a/src/Microsoft.ML.Data/Commands/TrainTestCommand.cs +++ b/src/Microsoft.ML.Data/Commands/TrainTestCommand.cs @@ -53,8 +53,9 @@ public sealed class Arguments : DataCommand.ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Name column name", ShortName = "name", SortOrder = 6)] public string NameColumn = DefaultColumnNames.Name; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", ShortName = "col", SortOrder = 10)] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn", ShortName = "col", SortOrder = 10)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.LastOccurenceWins, HelpText = "Normalize option for the feature column", ShortName = "norm")] public NormalizeOption NormalizeFeatures = NormalizeOption.Auto; @@ -146,7 +147,7 @@ private void RunCore(IChannel ch, string cmd) TrainUtils.AddNormalizerIfNeeded(Host, ch, trainer, ref trainPipe, features, Args.NormalizeFeatures); ch.Trace("Binding columns"); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, Args.CustomColumns); var data = new RoleMappedData(trainPipe, label, features, group, weight, name, customCols); RoleMappedData validData = null; diff --git a/src/Microsoft.ML.Data/DataLoadSave/CompositeDataLoader.cs b/src/Microsoft.ML.Data/DataLoadSave/CompositeDataLoader.cs index d55e25db65..ff5348c58c 100644 --- a/src/Microsoft.ML.Data/DataLoadSave/CompositeDataLoader.cs +++ b/src/Microsoft.ML.Data/DataLoadSave/CompositeDataLoader.cs @@ -37,8 +37,8 @@ public sealed class Arguments [Argument(ArgumentType.Multiple, HelpText = "The data loader", ShortName = "loader", SignatureType = typeof(SignatureDataLoader))] public IComponentFactory Loader; - [Argument(ArgumentType.Multiple, HelpText = "Transform", ShortName = "xf", SignatureType = typeof(SignatureDataTransform))] - public KeyValuePair>[] Transform; + [Argument(ArgumentType.Multiple, HelpText = "Transform", Name = "Transform", ShortName = "xf", SignatureType = typeof(SignatureDataTransform))] + public KeyValuePair>[] Transforms; } private readonly struct TransformEx @@ -103,7 +103,7 @@ public static IDataLoader Create(IHostEnvironment env, Arguments args, IMultiStr h.CheckValue(files, nameof(files)); var loader = args.Loader.CreateComponent(h, files); - return CreateCore(h, loader, args.Transform); + return CreateCore(h, loader, args.Transforms); } /// diff --git a/src/Microsoft.ML.Data/DataLoadSave/Text/TextLoader.cs b/src/Microsoft.ML.Data/DataLoadSave/Text/TextLoader.cs index c45c62ed96..a971bc7dc8 100644 --- a/src/Microsoft.ML.Data/DataLoadSave/Text/TextLoader.cs +++ b/src/Microsoft.ML.Data/DataLoadSave/Text/TextLoader.cs @@ -361,8 +361,8 @@ public class ArgumentsCore public char[] Separators = new[] { DefaultArguments.Separator }; [Argument(ArgumentType.Multiple, HelpText = "Column groups. Each group is specified as name:type:numeric-ranges, eg, col=Features:R4:1-17,26,35-40", - ShortName = "col", SortOrder = 1)] - public Column[] Column; + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Remove trailing whitespace from lines", ShortName = "trim")] public bool TrimWhitespace = DefaultArguments.TrimWhitespace; @@ -376,7 +376,7 @@ public class ArgumentsCore /// public bool IsValid() { - return Utils.Size(Column) == 0 || Column.All(x => x.IsValid()); + return Utils.Size(Columns) == 0 || Columns.All(x => x.IsValid()); } } @@ -984,7 +984,7 @@ public TextLoader(IHostEnvironment env, Column[] columns, bool hasHeader = false private static Arguments MakeArgs(Column[] columns, bool hasHeader, char[] separatorChars) { Contracts.AssertValue(separatorChars); - var result = new Arguments { Column = columns, HasHeader = hasHeader, Separators = separatorChars}; + var result = new Arguments { Columns = columns, HasHeader = hasHeader, Separators = separatorChars}; return result; } @@ -1010,7 +1010,7 @@ public TextLoader(IHostEnvironment env, Arguments args = null, IMultiStreamSourc if (!string.IsNullOrWhiteSpace(args.HeaderFile)) headerFile = new MultiFileSource(args.HeaderFile); - var cols = args.Column; + var cols = args.Columns; bool error; if (Utils.Size(cols) == 0 && !TryParseSchema(_host, headerFile ?? dataSample, ref args, out cols, out error)) { @@ -1188,7 +1188,7 @@ private static bool TryParseSchema(IHost host, IMultiStreamSource files, if (!CmdParser.ParseArguments(host, loader.GetSettingsString(), argsNew, typeof(ArgumentsCore), msg => ch.Error(msg))) goto LDone; - cols = argsNew.Column; + cols = argsNew.Columns; if (Utils.Size(cols) == 0) goto LDone; @@ -1379,7 +1379,7 @@ internal static TextLoader CreateTextReader(IHostEnvironment host, AllowQuoting = allowQuotedStrings, AllowSparse = supportSparse, TrimWhitespace = trimWhitespace, - Column = columns.ToArray() + Columns = columns.ToArray() }; return new TextLoader(host, args); diff --git a/src/Microsoft.ML.Data/DataLoadSave/Transpose/TransposeSaver.cs b/src/Microsoft.ML.Data/DataLoadSave/Transpose/TransposeSaver.cs index da82e70df7..70713eb138 100644 --- a/src/Microsoft.ML.Data/DataLoadSave/Transpose/TransposeSaver.cs +++ b/src/Microsoft.ML.Data/DataLoadSave/Transpose/TransposeSaver.cs @@ -142,7 +142,7 @@ private void SaveTransposedData(IChannel ch, Stream stream, ITransposeDataView d // First write out the no-row data, limited to these columns. IDataView subdata = new ChooseColumnsByIndexTransform(_host, - new ChooseColumnsByIndexTransform.Arguments() { Index = cols }, data); + new ChooseColumnsByIndexTransform.Arguments() { Indices = cols }, data); // If we want the "dual mode" row-wise and slot-wise file, don't filter out anything. if (!_writeRowData) subdata = SkipTakeFilter.Create(_host, new SkipTakeFilter.TakeArguments() { Count = 0 }, subdata); diff --git a/src/Microsoft.ML.Data/DataView/CacheDataView.cs b/src/Microsoft.ML.Data/DataView/CacheDataView.cs index 36c82409dc..e828c96dcb 100644 --- a/src/Microsoft.ML.Data/DataView/CacheDataView.cs +++ b/src/Microsoft.ML.Data/DataView/CacheDataView.cs @@ -167,7 +167,7 @@ private static IDataView SelectCachableColumns(IDataView data, IHostEnvironment // REVIEW: This can potentially cause hidden columns to become unhidden. See task 3739. var args = new ChooseColumnsByIndexTransform.Arguments(); args.Drop = true; - args.Index = columnsToDrop.ToArray(); + args.Indices = columnsToDrop.ToArray(); return new ChooseColumnsByIndexTransform(env, args, data); } diff --git a/src/Microsoft.ML.Data/Dirty/ChooseColumnsByIndexTransform.cs b/src/Microsoft.ML.Data/Dirty/ChooseColumnsByIndexTransform.cs index 965dd09370..b36a03ddc4 100644 --- a/src/Microsoft.ML.Data/Dirty/ChooseColumnsByIndexTransform.cs +++ b/src/Microsoft.ML.Data/Dirty/ChooseColumnsByIndexTransform.cs @@ -24,8 +24,8 @@ public sealed class ChooseColumnsByIndexTransform : RowToRowTransformBase { public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Column index to select", ShortName = "ind")] - public int[] Index; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Column indices to select", Name = "Index", ShortName = "ind")] + public int[] Indices; [Argument(ArgumentType.LastOccurenceWins, HelpText = "If true, selected columns are dropped instead of kept, with the order of kept columns being the same as the original", ShortName = "d")] public bool Drop; @@ -34,7 +34,7 @@ public sealed class Arguments private sealed class Bindings { /// - /// A collection of source column indexes after removing those we want to drop. Specifically, j=_sources[i] means + /// A collection of source column indices after removing those we want to drop. Specifically, j=_sources[i] means /// that the i-th output column in the output schema is the j-th column in the input schema. /// private readonly int[] _sources; @@ -69,7 +69,7 @@ internal Bindings(Arguments args, Schema sourceSchema) // Store user-specified arguments as the major state of this transform. Only the major states will // be saved and all other attributes can be reconstructed from them. _drop = args.Drop; - _selectedColumnIndexes = args.Index; + _selectedColumnIndexes = args.Indices; // Compute actually used attributes in runtime from those major states. ComputeSources(_drop, _selectedColumnIndexes, _sourceSchema, out _sources); @@ -85,10 +85,10 @@ private static void ComputeSources(bool drop, int[] selectedColumnIndexes, Schem { // Compute the mapping, , from output column index to input column index. if (drop) - // Drop columns indexed by args.Index + // Drop columns indexed by args.Indices sources = Enumerable.Range(0, sourceSchema.Count).Except(selectedColumnIndexes).ToArray(); else - // Keep columns indexed by args.Index + // Keep columns indexed by args.Indices sources = selectedColumnIndexes; // Make sure the output of this transform is meaningful. diff --git a/src/Microsoft.ML.Data/EntryPoints/InputBuilder.cs b/src/Microsoft.ML.Data/EntryPoints/InputBuilder.cs index fe2c832edf..523885036d 100644 --- a/src/Microsoft.ML.Data/EntryPoints/InputBuilder.cs +++ b/src/Microsoft.ML.Data/EntryPoints/InputBuilder.cs @@ -234,7 +234,7 @@ public JObject GetJsonObject(object instance, Dictionary)) || type.GetGenericTypeDefinition() == typeof(ArrayVar<>) || type.GetGenericTypeDefinition() == typeof(DictionaryVar<>))) { - result.Add(field.Name, new JValue($"${((IVarSerializationHelper)instanceVal).VarName}")); + result.Add(attr.Input.Name ?? field.Name, new JValue($"${((IVarSerializationHelper)instanceVal).VarName}")); } else if (type == typeof(bool) || type == typeof(string) || @@ -294,12 +294,12 @@ public JObject GetJsonObject(object instance, Dictionary) && type.GetGenericArguments()[0] == typeof(string)) @@ -363,7 +363,7 @@ public JObject GetJsonObject(object instance, Dictionary>(), + result.Add(attr.Input.Name ?? field.Name, builder.GetJsonObject(instanceVal, new Dictionary>(), new Dictionary())); } } diff --git a/src/Microsoft.ML.Data/Evaluators/EvaluatorBase.cs b/src/Microsoft.ML.Data/Evaluators/EvaluatorBase.cs index c7a547d367..0ea5685c41 100644 --- a/src/Microsoft.ML.Data/Evaluators/EvaluatorBase.cs +++ b/src/Microsoft.ML.Data/Evaluators/EvaluatorBase.cs @@ -370,8 +370,8 @@ internal static AggregatorDictionaryBase Create(RoleMappedSchema schema, string if (stratType.GetKeyCount() == 0 && !(stratType is TextType)) { - throw Contracts.ExceptUserArg(nameof(MamlEvaluatorBase.ArgumentsBase.StratColumn), - "Stratification column '{0}' has type '{1}', but must be a known count key or text", stratCol, stratType); + throw Contracts.ExceptUserArg(nameof(MamlEvaluatorBase.ArgumentsBase.StratColumns), + "Stratification column '{stratCol}' has type '{stratType}', but must be a known count key or text"); } return Utils.MarshalInvoke(CreateDictionary, stratType.RawType, schema, stratCol, stratType, createAgg); } diff --git a/src/Microsoft.ML.Data/Evaluators/EvaluatorUtils.cs b/src/Microsoft.ML.Data/Evaluators/EvaluatorUtils.cs index daae41fab4..2a30139ef0 100644 --- a/src/Microsoft.ML.Data/Evaluators/EvaluatorUtils.cs +++ b/src/Microsoft.ML.Data/Evaluators/EvaluatorUtils.cs @@ -882,7 +882,7 @@ private static IDataView AppendPerInstanceDataViews(IHostEnvironment env, string { var args = new ChooseColumnsByIndexTransform.Arguments(); args.Drop = true; - args.Index = hidden.ToArray(); + args.Indices = hidden.ToArray(); idv = new ChooseColumnsByIndexTransform(env, args, idv); } list.Add(idv); @@ -910,12 +910,12 @@ private static IDataView AppendPerInstanceDataViews(IHostEnvironment env, string idv = new KeyToValueMappingTransformer(env, keyCol).Transform(idv); var hidden = FindHiddenColumns(idv.Schema, keyCol); - idv = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Index = hidden.ToArray() }, idv); + idv = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Indices = hidden.ToArray() }, idv); } foreach (var keyCol in firstDvKeyNoNamesColumns) { var hidden = FindHiddenColumns(idv.Schema, keyCol.Key); - idv = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Index = hidden.ToArray() }, idv); + idv = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Indices = hidden.ToArray() }, idv); } return idv; }; @@ -1741,7 +1741,7 @@ public static IDataView GetNonStratifiedMetrics(IHostEnvironment env, IDataView var type = data.Schema[stratCol].Type; env.Check(type.GetKeyCount() > 0, "Expected a known count key type stratification column"); var filterArgs = new NAFilter.Arguments(); - filterArgs.Column = new[] { MetricKinds.ColumnNames.StratCol }; + filterArgs.Columns = new[] { MetricKinds.ColumnNames.StratCol }; filterArgs.Complement = true; data = new NAFilter(env, filterArgs, data); diff --git a/src/Microsoft.ML.Data/Evaluators/MamlEvaluator.cs b/src/Microsoft.ML.Data/Evaluators/MamlEvaluator.cs index 44209089ef..d9408d982b 100644 --- a/src/Microsoft.ML.Data/Evaluators/MamlEvaluator.cs +++ b/src/Microsoft.ML.Data/Evaluators/MamlEvaluator.cs @@ -70,8 +70,8 @@ public abstract class ArgumentsBase : EvaluateInputBase // Stratification columns. - [Argument(ArgumentType.Multiple, HelpText = "Stratification column name.", ShortName = "strat")] - public string[] StratColumn; + [Argument(ArgumentType.Multiple, HelpText = "Stratification column name.", Name = "StratColumn", ShortName = "strat")] + public string[] StratColumns; } internal static RoleMappedSchema.ColumnRole Strat = "Strat"; @@ -101,7 +101,7 @@ private protected MamlEvaluatorBase(ArgumentsBase args, IHostEnvironment env, st ScoreCol = args.ScoreColumn; LabelCol = args.LabelColumn; WeightCol = args.WeightColumn; - StratCols = args.StratColumn; + StratCols = args.StratColumns; } Dictionary IEvaluator.Evaluate(RoleMappedData data) @@ -247,7 +247,7 @@ private IDataView WrapPerInstance(RoleMappedData perInst) else { var args = new GenerateNumberTransform.Arguments(); - args.Column = new[] { new GenerateNumberTransform.Column() { Name = "Instance" } }; + args.Columns = new[] { new GenerateNumberTransform.Column() { Name = "Instance" } }; args.UseCounter = true; idv = new GenerateNumberTransform(Host, args, idv); colsToKeep.Add("Instance"); diff --git a/src/Microsoft.ML.Data/Evaluators/MultiClassClassifierEvaluator.cs b/src/Microsoft.ML.Data/Evaluators/MultiClassClassifierEvaluator.cs index 448ee88e53..5354cbd13b 100644 --- a/src/Microsoft.ML.Data/Evaluators/MultiClassClassifierEvaluator.cs +++ b/src/Microsoft.ML.Data/Evaluators/MultiClassClassifierEvaluator.cs @@ -930,7 +930,7 @@ private protected override IDataView CombineOverallMetricsCore(IDataView[] metri idv.Schema[col].Name.Equals(MultiClassClassifierEvaluator.PerClassLogLoss)) { idv = new ChooseColumnsByIndexTransform(Host, - new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Index = new[] { col } }, idv); + new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Indices = new[] { col } }, idv); break; } } diff --git a/src/Microsoft.ML.Data/Evaluators/QuantileRegressionEvaluator.cs b/src/Microsoft.ML.Data/Evaluators/QuantileRegressionEvaluator.cs index 01e1f2f70a..c627c500db 100644 --- a/src/Microsoft.ML.Data/Evaluators/QuantileRegressionEvaluator.cs +++ b/src/Microsoft.ML.Data/Evaluators/QuantileRegressionEvaluator.cs @@ -520,7 +520,7 @@ private IDataView ExtractRelevantIndex(IDataView data) output = LambdaColumnMapper.Create(Host, "Quantile Regression", output, name, name, type, NumberType.R8, (in VBuffer src, ref Double dst) => dst = src.GetItemOrDefault(index)); output = new ChooseColumnsByIndexTransform(Host, - new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Index = new[] { i } }, output); + new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Indices = new[] { i } }, output); } } return output; diff --git a/src/Microsoft.ML.Data/Transforms/ColumnBindingsBase.cs b/src/Microsoft.ML.Data/Transforms/ColumnBindingsBase.cs index fd7b815e2b..93f016be37 100644 --- a/src/Microsoft.ML.Data/Transforms/ColumnBindingsBase.cs +++ b/src/Microsoft.ML.Data/Transforms/ColumnBindingsBase.cs @@ -311,9 +311,9 @@ protected ColumnBindingsBase(Schema input, bool user, params string[] names) // In lieu of actual protections, I have the following silly asserts, so we can have some // warning if we decide to rename this argument, and so know to change the below hard-coded // standard column name. - const string standardColumnArgName = "Column"; - Contracts.Assert(nameof(ValueToKeyMappingTransformer.Arguments.Column) == standardColumnArgName); - Contracts.Assert(nameof(ColumnConcatenatingTransformer.Arguments.Column) == standardColumnArgName); + const string standardColumnArgName = "Columns"; + Contracts.Assert(nameof(ValueToKeyMappingTransformer.Arguments.Columns) == standardColumnArgName); + Contracts.Assert(nameof(ColumnConcatenatingTransformer.Arguments.Columns) == standardColumnArgName); for (int iinfo = 0; iinfo < names.Length; iinfo++) { diff --git a/src/Microsoft.ML.Data/Transforms/ColumnConcatenatingTransformer.cs b/src/Microsoft.ML.Data/Transforms/ColumnConcatenatingTransformer.cs index a15ee34609..1b7912854b 100644 --- a/src/Microsoft.ML.Data/Transforms/ColumnConcatenatingTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/ColumnConcatenatingTransformer.cs @@ -107,21 +107,23 @@ public Arguments() public Arguments(string name, params string[] source) { - Column = new[] { new Column() + Columns = new[] { new Column() { Name = name, Source = source }}; } - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:srcs)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:srcs)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } public sealed class TaggedArguments { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", ShortName = "col", SortOrder = 1)] - public TaggedColumn[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public TaggedColumn[] Columns; } public sealed class ColumnInfo @@ -360,12 +362,12 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + env.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); - for (int i = 0; i < args.Column.Length; i++) - env.CheckUserArg(Utils.Size(args.Column[i].Source) > 0, nameof(args.Column)); + for (int i = 0; i < args.Columns.Length; i++) + env.CheckUserArg(Utils.Size(args.Columns[i].Source) > 0, nameof(args.Columns)); - var cols = args.Column + var cols = args.Columns .Select(c => new ColumnInfo(c.Name, c.Source)) .ToArray(); var transformer = new ColumnConcatenatingTransformer(env, cols); @@ -380,12 +382,12 @@ internal static IDataTransform Create(IHostEnvironment env, TaggedArguments args Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + env.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); - for (int i = 0; i < args.Column.Length; i++) - env.CheckUserArg(Utils.Size(args.Column[i].Source) > 0, nameof(args.Column)); + for (int i = 0; i < args.Columns.Length; i++) + env.CheckUserArg(Utils.Size(args.Columns[i].Source) > 0, nameof(args.Columns)); - var cols = args.Column + var cols = args.Columns .Select(c => new ColumnInfo(c.Name, c.Source.Select(kvp => (kvp.Value, kvp.Key != "" ? kvp.Key : null)))) .ToArray(); var transformer = new ColumnConcatenatingTransformer(env, cols); diff --git a/src/Microsoft.ML.Data/Transforms/ColumnCopying.cs b/src/Microsoft.ML.Data/Transforms/ColumnCopying.cs index cc3e407ad5..a880496d60 100644 --- a/src/Microsoft.ML.Data/Transforms/ColumnCopying.cs +++ b/src/Microsoft.ML.Data/Transforms/ColumnCopying.cs @@ -108,8 +108,9 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } // Factory method corresponding to SignatureDataTransform. @@ -118,7 +119,7 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); - var transformer = new ColumnCopyingTransformer(env, args.Column.Select(x => (x.Name, x.Source)).ToArray()); + var transformer = new ColumnCopyingTransformer(env, args.Columns.Select(x => (x.Name, x.Source)).ToArray()); return transformer.MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Data/Transforms/DropSlotsTransform.cs b/src/Microsoft.ML.Data/Transforms/DropSlotsTransform.cs index 240c994f34..631ed517e1 100644 --- a/src/Microsoft.ML.Data/Transforms/DropSlotsTransform.cs +++ b/src/Microsoft.ML.Data/Transforms/DropSlotsTransform.cs @@ -39,8 +39,9 @@ public sealed class SlotsDroppingTransformer : OneToOneTransformerBase { public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to drop the slots for", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to drop the slots for", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } public sealed class Column : OneToOneColumn @@ -309,7 +310,7 @@ private static SlotsDroppingTransformer Create(IHostEnvironment env, ModelLoadCo // Factory method for SignatureDataTransform. private static IDataTransform Create(IHostEnvironment env, Arguments args, IDataView input) { - var columns = args.Column.Select(column => new ColumnInfo(column)).ToArray(); + var columns = args.Columns.Select(column => new ColumnInfo(column)).ToArray(); return new SlotsDroppingTransformer(env, columns).MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Data/Transforms/GenerateNumberTransform.cs b/src/Microsoft.ML.Data/Transforms/GenerateNumberTransform.cs index 5b1656329d..d10f57f46f 100644 --- a/src/Microsoft.ML.Data/Transforms/GenerateNumberTransform.cs +++ b/src/Microsoft.ML.Data/Transforms/GenerateNumberTransform.cs @@ -88,8 +88,9 @@ private static class Defaults public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:seed)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:seed)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Use an auto-incremented integer starting at zero instead of a random number", ShortName = "cnt")] public bool UseCounter = Defaults.UseCounter; @@ -115,12 +116,12 @@ private Bindings(bool[] useCounter, TauswortheHybrid.State[] states, public static Bindings Create(Arguments args, Schema input) { - var names = new string[args.Column.Length]; - var useCounter = new bool[args.Column.Length]; - var states = new TauswortheHybrid.State[args.Column.Length]; - for (int i = 0; i < args.Column.Length; i++) + var names = new string[args.Columns.Length]; + var useCounter = new bool[args.Columns.Length]; + var states = new TauswortheHybrid.State[args.Columns.Length]; + for (int i = 0; i < args.Columns.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; names[i] = item.Name; useCounter[i] = item.UseCounter ?? args.UseCounter; if (!useCounter[i]) @@ -269,7 +270,7 @@ private static VersionInfo GetVersionInfo() /// Seed to start random number generator. /// Use an auto-incremented integer starting at zero instead of a random number. public GenerateNumberTransform(IHostEnvironment env, IDataView input, string name, uint? seed = null, bool useCounter = Defaults.UseCounter) - : this(env, new Arguments() { Column = new[] { new Column() { Name = name } }, Seed = seed ?? Defaults.Seed, UseCounter = useCounter }, input) + : this(env, new Arguments() { Columns = new[] { new Column() { Name = name } }, Seed = seed ?? Defaults.Seed, UseCounter = useCounter }, input) { } @@ -280,7 +281,7 @@ public GenerateNumberTransform(IHostEnvironment env, Arguments args, IDataView i : base(env, RegistrationName, input) { Host.CheckValue(args, nameof(args)); - Host.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + Host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); _bindings = Bindings.Create(args, Source.Schema); } diff --git a/src/Microsoft.ML.Data/Transforms/Hashing.cs b/src/Microsoft.ML.Data/Transforms/Hashing.cs index 351bf44ad5..be3d937c66 100644 --- a/src/Microsoft.ML.Data/Transforms/Hashing.cs +++ b/src/Microsoft.ML.Data/Transforms/Hashing.cs @@ -39,9 +39,9 @@ public sealed class HashingTransformer : OneToOneTransformerBase { public sealed class Arguments { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", - SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Number of bits to hash into. Must be between 1 and 31, inclusive", ShortName = "bits", SortOrder = 2)] @@ -382,11 +382,11 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var kind = item.InvertHash ?? args.InvertHash; cols[i] = new ColumnInfo( item.Name, diff --git a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs index 0fb1ca6e75..af063bda07 100644 --- a/src/Microsoft.ML.Data/Transforms/KeyToValue.cs +++ b/src/Microsoft.ML.Data/Transforms/KeyToValue.cs @@ -60,8 +60,9 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal const string LoaderSignature = "KeyToValueTransform"; @@ -107,9 +108,9 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckNonEmpty(args.Column, nameof(args.Column)); + env.CheckNonEmpty(args.Columns, nameof(args.Columns)); - var transformer = new KeyToValueMappingTransformer(env, args.Column.Select(c => (c.Name, c.Source ?? c.Name)).ToArray()); + var transformer = new KeyToValueMappingTransformer(env, args.Columns.Select(c => (c.Name, c.Source ?? c.Name)).ToArray()); return transformer.MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Data/Transforms/KeyToVector.cs b/src/Microsoft.ML.Data/Transforms/KeyToVector.cs index 46c68ba7c5..75b0017f1f 100644 --- a/src/Microsoft.ML.Data/Transforms/KeyToVector.cs +++ b/src/Microsoft.ML.Data/Transforms/KeyToVector.cs @@ -82,8 +82,9 @@ internal bool TryUnparse(StringBuilder sb) } public sealed class Arguments { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to combine multiple indicator vectors into a single bag vector instead of concatenating them. This is only relevant when the input is a vector.")] @@ -217,11 +218,11 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo( item.Name, diff --git a/src/Microsoft.ML.Data/Transforms/LabelConvertTransform.cs b/src/Microsoft.ML.Data/Transforms/LabelConvertTransform.cs index c7ca1bb2f6..408e62e330 100644 --- a/src/Microsoft.ML.Data/Transforms/LabelConvertTransform.cs +++ b/src/Microsoft.ML.Data/Transforms/LabelConvertTransform.cs @@ -45,8 +45,9 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col")] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col")] + public Column[] Columns; } internal const string Summary = "Convert a label column into a standard floating point representation."; @@ -74,15 +75,15 @@ private static VersionInfo GetVersionInfo() /// Name of the output column. /// Name of the input column. If this is null '' will be used. public LabelConvertTransform(IHostEnvironment env, IDataView input, string outputColumnName, string inputColumnName = null) - : this(env, new Arguments() { Column = new[] { new Column() { Source = inputColumnName ?? outputColumnName, Name = outputColumnName } } }, input) + : this(env, new Arguments() { Columns = new[] { new Column() { Source = inputColumnName ?? outputColumnName, Name = outputColumnName } } }, input) { } public LabelConvertTransform(IHostEnvironment env, Arguments args, IDataView input) - : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Column, input, RowCursorUtils.TestGetLabelGetter) + : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Columns, input, RowCursorUtils.TestGetLabelGetter) { Contracts.AssertNonEmpty(Infos); - Contracts.Assert(Infos.Length == Utils.Size(args.Column)); + Contracts.Assert(Infos.Length == Utils.Size(args.Columns)); Metadata.Seal(); } diff --git a/src/Microsoft.ML.Data/Transforms/LabelIndicatorTransform.cs b/src/Microsoft.ML.Data/Transforms/LabelIndicatorTransform.cs index 496e795b49..259305b9fa 100644 --- a/src/Microsoft.ML.Data/Transforms/LabelIndicatorTransform.cs +++ b/src/Microsoft.ML.Data/Transforms/LabelIndicatorTransform.cs @@ -69,8 +69,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Label of the positive class.", ShortName = "index")] public int ClassIndex; @@ -127,20 +127,20 @@ public LabelIndicatorTransform(IHostEnvironment env, int classIndex, string name, string source = null) - : this(env, new Arguments() { Column = new[] { new Column() { Source = source ?? name, Name = name } }, ClassIndex = classIndex }, input) + : this(env, new Arguments() { Columns = new[] { new Column() { Source = source ?? name, Name = name } }, ClassIndex = classIndex }, input) { } public LabelIndicatorTransform(IHostEnvironment env, Arguments args, IDataView input) - : base(env, LoadName, Contracts.CheckRef(args, nameof(args)).Column, + : base(env, LoadName, Contracts.CheckRef(args, nameof(args)).Columns, input, TestIsMulticlassLabel) { Host.AssertNonEmpty(Infos); - Host.Assert(Infos.Length == Utils.Size(args.Column)); + Host.Assert(Infos.Length == Utils.Size(args.Columns)); _classIndex = new int[Infos.Length]; for (int iinfo = 0; iinfo < Infos.Length; ++iinfo) - _classIndex[iinfo] = args.Column[iinfo].ClassIndex ?? args.ClassIndex; + _classIndex[iinfo] = args.Columns[iinfo].ClassIndex ?? args.ClassIndex; Metadata.Seal(); } diff --git a/src/Microsoft.ML.Data/Transforms/NAFilter.cs b/src/Microsoft.ML.Data/Transforms/NAFilter.cs index f682a8da6d..ffc04cbc80 100644 --- a/src/Microsoft.ML.Data/Transforms/NAFilter.cs +++ b/src/Microsoft.ML.Data/Transforms/NAFilter.cs @@ -38,8 +38,8 @@ private static class Defaults public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Column", ShortName = "col", SortOrder = 1)] - public string[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Column", Name = "Column", ShortName = "col", SortOrder = 1)] + public string[] Columns; [Argument(ArgumentType.Multiple, HelpText = "If true, keep only rows that contain NA values, and filter the rest.")] public bool Complement = Defaults.Complement; @@ -89,7 +89,7 @@ private static VersionInfo GetVersionInfo() /// If true, keep only rows that contain NA values, and filter the rest. /// Name of the columns. Only these columns will be used to filter rows having 'NA' values. public NAFilter(IHostEnvironment env, IDataView input, bool complement = Defaults.Complement, params string[] columns) - : this(env, new Arguments() { Column = columns, Complement = complement }, input) + : this(env, new Arguments() { Columns = columns, Complement = complement }, input) { } @@ -98,25 +98,25 @@ public NAFilter(IHostEnvironment env, Arguments args, IDataView input) { Host.CheckValue(args, nameof(args)); Host.CheckValue(input, nameof(input)); - Host.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + Host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); Host.CheckValue(env, nameof(env)); - _infos = new ColInfo[args.Column.Length]; + _infos = new ColInfo[args.Columns.Length]; _srcIndexToInfoIndex = new Dictionary(_infos.Length); _complement = args.Complement; var schema = Source.Schema; for (int i = 0; i < _infos.Length; i++) { - string src = args.Column[i]; + string src = args.Columns[i]; int index; if (!schema.TryGetColumnIndex(src, out index)) - throw Host.ExceptUserArg(nameof(args.Column), "Source column '{0}' not found", src); + throw Host.ExceptUserArg(nameof(args.Columns), "Source column '{0}' not found", src); if (_srcIndexToInfoIndex.ContainsKey(index)) - throw Host.ExceptUserArg(nameof(args.Column), "Source column '{0}' specified multiple times", src); + throw Host.ExceptUserArg(nameof(args.Columns), "Source column '{0}' specified multiple times", src); var type = schema[index].Type; if (!TestType(type)) - throw Host.ExceptUserArg(nameof(args.Column), $"Column '{src}' has type {type} which does not support missing values, so we cannot filter on them", src); + throw Host.ExceptUserArg(nameof(args.Columns), $"Column '{src}' has type {type} which does not support missing values, so we cannot filter on them", src); _infos[i] = new ColInfo(index, type); _srcIndexToInfoIndex.Add(index, i); diff --git a/src/Microsoft.ML.Data/Transforms/NormalizeColumn.cs b/src/Microsoft.ML.Data/Transforms/NormalizeColumn.cs index 25f52eabca..4888aeb4c4 100644 --- a/src/Microsoft.ML.Data/Transforms/NormalizeColumn.cs +++ b/src/Microsoft.ML.Data/Transforms/NormalizeColumn.cs @@ -165,10 +165,10 @@ public abstract class FixZeroArgumentsBase : ArgumentsBase public abstract class AffineArgumentsBase : FixZeroArgumentsBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public AffineColumn[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public AffineColumn[] Columns; - public override OneToOneColumn[] GetColumns() => Column; + public override OneToOneColumn[] GetColumns() => Columns; } public sealed class MinMaxArguments : AffineArgumentsBase @@ -212,22 +212,22 @@ public sealed class LogMeanVarArguments : ArgumentsBase [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to use CDF as the output", ShortName = "cdf")] public bool UseCdf = Defaults.LogMeanVarCdf; - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public LogNormalColumn[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public LogNormalColumn[] Columns; - public override OneToOneColumn[] GetColumns() => Column; + public override OneToOneColumn[] GetColumns() => Columns; } public abstract class BinArgumentsBase : FixZeroArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public BinColumn[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public BinColumn[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Max number of bins, power of 2 recommended", ShortName = "bins")] [TGUI(Label = "Max number of bins")] public int NumBins = Defaults.NumBins; - public override OneToOneColumn[] GetColumns() => Column; + public override OneToOneColumn[] GetColumns() => Columns; } public sealed class BinArguments : BinArgumentsBase @@ -286,9 +286,9 @@ internal static IDataTransform Create(IHostEnvironment env, MinMaxArguments args { Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var columns = args.Column + var columns = args.Columns .Select(col => new NormalizingEstimator.MinMaxColumn( col.Name, col.Source ?? col.Name, @@ -304,9 +304,9 @@ internal static IDataTransform Create(IHostEnvironment env, MeanVarArguments arg { Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var columns = args.Column + var columns = args.Columns .Select(col => new NormalizingEstimator.MeanVarColumn( col.Name, col.Source ?? col.Name, @@ -324,9 +324,9 @@ internal static IDataTransform Create(IHostEnvironment env, LogMeanVarArguments { Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var columns = args.Column + var columns = args.Columns .Select(col => new NormalizingEstimator.LogMeanVarColumn( col.Name, col.Source ?? col.Name, @@ -344,9 +344,9 @@ internal static IDataTransform Create(IHostEnvironment env, BinArguments args, I { Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var columns = args.Column + var columns = args.Columns .Select(col => new NormalizingEstimator.BinningColumn( col.Name, col.Source ?? col.Name, @@ -398,7 +398,7 @@ public static AffineColumnFunction Create(ModelLoadContext ctx, IHost host, Colu if (vectorType.ItemType == NumberType.R8) return Dbl.ImplVec.Create(ctx, host, vectorType); } - throw host.ExceptUserArg(nameof(AffineArgumentsBase.Column), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc.ToString()); + throw host.ExceptUserArg(nameof(AffineArgumentsBase.Columns), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc.ToString()); } private abstract class ImplOne : AffineColumnFunction @@ -515,7 +515,7 @@ public static CdfColumnFunction Create(ModelLoadContext ctx, IHost host, ColumnT if (vectorType.ItemType == NumberType.R8) return Dbl.ImplVec.Create(ctx, host, vectorType); } - throw host.ExceptUserArg(nameof(AffineArgumentsBase.Column), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc); + throw host.ExceptUserArg(nameof(AffineArgumentsBase.Columns), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc); } private abstract class ImplOne : CdfColumnFunction @@ -649,7 +649,7 @@ public static BinColumnFunction Create(ModelLoadContext ctx, IHost host, ColumnT if (vectorType.ItemType == NumberType.R8) return Dbl.ImplVec.Create(ctx, host, vectorType); } - throw host.ExceptUserArg(nameof(BinArguments.Column), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc); + throw host.ExceptUserArg(nameof(BinArguments.Columns), "Wrong column type. Expected: R4, R8, Vec or Vec. Got: {0}.", typeSrc); } public const string LoaderSignature = "BinNormalizeFunction"; @@ -919,10 +919,10 @@ public static IColumnFunctionBuilder CreateBuilder(MinMaxArguments args, IHost h host.AssertValue(args); return CreateBuilder(new NormalizingEstimator.MinMaxColumn( - args.Column[icol].Name, - args.Column[icol].Source ?? args.Column[icol].Name, - args.Column[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, - args.Column[icol].FixZero ?? args.FixZero), host, srcIndex, srcType, cursor); + args.Columns[icol].Name, + args.Columns[icol].Source ?? args.Columns[icol].Name, + args.Columns[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, + args.Columns[icol].FixZero ?? args.FixZero), host, srcIndex, srcType, cursor); } public static IColumnFunctionBuilder CreateBuilder(NormalizingEstimator.MinMaxColumn column, IHost host, @@ -955,10 +955,10 @@ public static IColumnFunctionBuilder CreateBuilder(MeanVarArguments args, IHost host.AssertValue(args); return CreateBuilder(new NormalizingEstimator.MeanVarColumn( - args.Column[icol].Name, - args.Column[icol].Source ?? args.Column[icol].Name, - args.Column[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, - args.Column[icol].FixZero ?? args.FixZero, + args.Columns[icol].Name, + args.Columns[icol].Source ?? args.Columns[icol].Name, + args.Columns[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, + args.Columns[icol].FixZero ?? args.FixZero, args.UseCdf), host, srcIndex, srcType, cursor); } @@ -995,9 +995,9 @@ public static IColumnFunctionBuilder CreateBuilder(LogMeanVarArguments args, IHo host.AssertValue(args); return CreateBuilder(new NormalizingEstimator.LogMeanVarColumn( - args.Column[icol].Name, - args.Column[icol].Source ?? args.Column[icol].Name, - args.Column[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, + args.Columns[icol].Name, + args.Columns[icol].Source ?? args.Columns[icol].Name, + args.Columns[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, args.UseCdf), host, srcIndex, srcType, cursor); } @@ -1034,11 +1034,11 @@ public static IColumnFunctionBuilder CreateBuilder(BinArguments args, IHost host host.AssertValue(args); return CreateBuilder(new NormalizingEstimator.BinningColumn( - args.Column[icol].Name, - args.Column[icol].Source ?? args.Column[icol].Name, - args.Column[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, - args.Column[icol].FixZero ?? args.FixZero, - args.Column[icol].NumBins ?? args.NumBins), host, srcIndex, srcType, cursor); + args.Columns[icol].Name, + args.Columns[icol].Source ?? args.Columns[icol].Name, + args.Columns[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, + args.Columns[icol].FixZero ?? args.FixZero, + args.Columns[icol].NumBins ?? args.NumBins), host, srcIndex, srcType, cursor); } public static IColumnFunctionBuilder CreateBuilder(NormalizingEstimator.BinningColumn column, IHost host, @@ -1083,12 +1083,12 @@ public static IColumnFunctionBuilder CreateBuilder(SupervisedBinArguments args, return CreateBuilder( new NormalizingEstimator.SupervisedBinningColumn( - args.Column[icol].Name, - args.Column[icol].Source ?? args.Column[icol].Name, + args.Columns[icol].Name, + args.Columns[icol].Source ?? args.Columns[icol].Name, args.LabelColumn ?? DefaultColumnNames.Label, - args.Column[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, - args.Column[icol].FixZero ?? args.FixZero, - args.Column[icol].NumBins ?? args.NumBins, + args.Columns[icol].MaxTrainingExamples ?? args.MaxTrainingExamples, + args.Columns[icol].FixZero ?? args.FixZero, + args.Columns[icol].NumBins ?? args.NumBins, args.MinBinSize), host, labelColumnId, srcIndex, srcType, cursor); } diff --git a/src/Microsoft.ML.Data/Transforms/NormalizeUtils.cs b/src/Microsoft.ML.Data/Transforms/NormalizeUtils.cs index 0efefaf451..4cd0e0006d 100644 --- a/src/Microsoft.ML.Data/Transforms/NormalizeUtils.cs +++ b/src/Microsoft.ML.Data/Transforms/NormalizeUtils.cs @@ -133,10 +133,10 @@ public static CommonOutputs.TransformOutput Bin(IHostEnvironment env, NormalizeT { var schema = input.Data.Schema; var columnsToNormalize = new List(); - foreach (var column in input.Column) + foreach (var column in input.Columns) { if (!schema.TryGetColumnIndex(column.Source, out int col)) - throw env.ExceptUserArg(nameof(input.Column), $"Column '{column.Source}' does not exist."); + throw env.ExceptUserArg(nameof(input.Columns), $"Column '{column.Source}' does not exist."); if (!schema[col].IsNormalized()) columnsToNormalize.Add(column); } @@ -149,7 +149,7 @@ public static CommonOutputs.TransformOutput Bin(IHostEnvironment env, NormalizeT } else { - input.Column = columnsToNormalize.ToArray(); + input.Columns = columnsToNormalize.ToArray(); var entryPointNode = EntryPointNode.Create(env, "Transforms.MinMaxNormalizer", input, node.Context, node.InputBindingMap, node.InputMap, node.OutputMap); entryPoints.Add(entryPointNode); } diff --git a/src/Microsoft.ML.Data/Transforms/RowShufflingTransformer.cs b/src/Microsoft.ML.Data/Transforms/RowShufflingTransformer.cs index bc5604c42b..7f08930430 100644 --- a/src/Microsoft.ML.Data/Transforms/RowShufflingTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/RowShufflingTransformer.cs @@ -200,7 +200,7 @@ private static IDataView SelectCachableColumns(IDataView data, IHostEnvironment var args = new ChooseColumnsByIndexTransform.Arguments(); args.Drop = true; - args.Index = columnsToDrop.ToArray(); + args.Indices = columnsToDrop.ToArray(); return new ChooseColumnsByIndexTransform(env, args, data); } diff --git a/src/Microsoft.ML.Data/Transforms/TrainAndScoreTransformer.cs b/src/Microsoft.ML.Data/Transforms/TrainAndScoreTransformer.cs index 5922bc4568..26a4ac1cc8 100644 --- a/src/Microsoft.ML.Data/Transforms/TrainAndScoreTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/TrainAndScoreTransformer.cs @@ -36,8 +36,8 @@ public sealed class Arguments : TransformInputBase [Argument(ArgumentType.Multiple, HelpText = "Input columns: Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", - ShortName = "col", SortOrder = 101, Purpose = SpecialPurpose.ColumnSelector)] - public KeyValuePair[] CustomColumn; + Name = "CustomColumn", ShortName = "col", SortOrder = 101, Purpose = SpecialPurpose.ColumnSelector)] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.Multiple, HelpText = "Scorer to use", NullName = "", SignatureType = typeof(SignatureDataScorer))] public IComponentFactory Scorer; @@ -95,7 +95,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData nameof(args.FeatureColumn), args.FeatureColumn, DefaultColumnNames.Features); string group = TrainUtils.MatchNameOrDefaultOrNull(env, input.Schema, nameof(args.GroupColumn), args.GroupColumn, DefaultColumnNames.GroupId); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(env, args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(env, args.CustomColumns); return ScoreUtils.GetScorer(args.Scorer, predictor, input, feat, group, customCols, env, trainSchema); } @@ -131,8 +131,8 @@ public abstract class ArgumentsBase : TransformInputBase [Argument(ArgumentType.Multiple, HelpText = "Input columns: Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", - ShortName = "col", SortOrder = 110, Purpose = SpecialPurpose.ColumnSelector)] - public KeyValuePair[] CustomColumn; + Name = "CustomColumn", ShortName = "col", SortOrder = 110, Purpose = SpecialPurpose.ColumnSelector)] + public KeyValuePair[] CustomColumns; public void CopyTo(ArgumentsBase other) { @@ -141,7 +141,7 @@ public void CopyTo(ArgumentsBase other) other.GroupColumn = GroupColumn; other.WeightColumn = WeightColumn; other.NameColumn = NameColumn; - other.CustomColumn = CustomColumn; + other.CustomColumns = CustomColumns; } } @@ -236,7 +236,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, ITrai using (var ch = host.Start("Train")) { ch.Trace("Constructing trainer"); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(env, args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(env, args.CustomColumns); string feat; string group; var data = CreateDataFromArgs(ch, input, args, out feat, out group); @@ -269,7 +269,7 @@ private static RoleMappedData CreateDataFromArgs(IExceptionContext ectx, IDataVi DefaultColumnNames.Weight); var name = TrainUtils.MatchNameOrDefaultOrNull(ectx, schema, nameof(args.NameColumn), args.NameColumn, DefaultColumnNames.Name); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ectx, args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ectx, args.CustomColumns); return new RoleMappedData(input, label, feat, group, weight, name, customCols); } } diff --git a/src/Microsoft.ML.Data/Transforms/TypeConverting.cs b/src/Microsoft.ML.Data/Transforms/TypeConverting.cs index c0412ec613..099518be67 100644 --- a/src/Microsoft.ML.Data/Transforms/TypeConverting.cs +++ b/src/Microsoft.ML.Data/Transforms/TypeConverting.cs @@ -129,8 +129,8 @@ internal bool TryUnparse(StringBuilder sb) public class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:type:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:type:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The result type", ShortName = "type", SortOrder = 2)] public DataKind? ResultType; @@ -321,11 +321,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var tempResultType = item.ResultType ?? args.ResultType; KeyCount keyCount = null; // If KeyCount or Range are defined on this column, set keyCount to the appropriate value. diff --git a/src/Microsoft.ML.Data/Transforms/ValueMapping.cs b/src/Microsoft.ML.Data/Transforms/ValueMapping.cs index 4c0aecdc76..5c375e744b 100644 --- a/src/Microsoft.ML.Data/Transforms/ValueMapping.cs +++ b/src/Microsoft.ML.Data/Transforms/ValueMapping.cs @@ -364,8 +364,8 @@ internal bool TryUnparse(StringBuilder sb) internal sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "The data file containing the terms", ShortName = "data", SortOrder = 2)] public string DataFile; @@ -591,7 +591,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData valueColumn = new TextLoader.Column(valueColumnName, DataKind.TXT, 1); var txtArgs = new TextLoader.Arguments() { - Column = new TextLoader.Column[] + Columns = new TextLoader.Column[] { keyColumn, valueColumn @@ -618,7 +618,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env, new TextLoader.Arguments() { - Column = new TextLoader.Column[] + Columns = new TextLoader.Column[] { keyColumn, valueColumn @@ -633,7 +633,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.Assert(loader.Schema.TryGetColumnIndex(valueColumnName, out int valueColumnIndex)); ValueMappingTransformer transformer = null; - (string outputColumnName, string inputColumnName)[] columns = args.Column.Select(x => (x.Name, x.Source)).ToArray(); + (string outputColumnName, string inputColumnName)[] columns = args.Columns.Select(x => (x.Name, x.Source)).ToArray(); transformer = new ValueMappingTransformer(env, loader, keyColumnName, valueColumnName, columns); return transformer.MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs index e5da31ae13..d6a8dfa0c5 100644 --- a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs +++ b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformer.cs @@ -50,11 +50,11 @@ public abstract class ColumnBase : OneToOneColumn [Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of terms to keep when auto-training", ShortName = "max")] public int? MaxNumTerms; - [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] - public string Terms; + [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", Name = "Terms", Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] + public string Term; - [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] - public string[] Term; + [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", Name = "Term", Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] + public string[] Terms; [Argument(ArgumentType.AtMostOnce, HelpText = "How items should be ordered when vectorized. By default, they will be in the order encountered. " + "If by value items are sorted according to their default comparison, for example, text sorting will be case sensitive (for example, 'A' then 'Z' then 'a').")] @@ -74,7 +74,7 @@ private protected override bool TryUnparseCore(StringBuilder sb) // REVIEW: This pattern isn't robust enough. If a new field is added, this code needs // to be updated accordingly, or it will break. The only protection we have against this // is unit tests.... - if (MaxNumTerms != null || !string.IsNullOrEmpty(Terms) || Sort != null || TextKeyValues != null) + if (MaxNumTerms != null || !string.IsNullOrEmpty(Term) || Sort != null || TextKeyValues != null) return false; return base.TryUnparseCore(sb); } @@ -113,11 +113,11 @@ public abstract class ArgumentsBase : TransformInputBase [Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of terms to keep per column when auto-training", ShortName = "max", SortOrder = 5)] public int MaxNumTerms = ValueToKeyMappingEstimator.Defaults.MaxNumTerms; - [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", SortOrder = 105, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] - public string Terms; + [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", Name = "Terms", SortOrder = 105, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] + public string Term; - [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", SortOrder = 106, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] - public string[] Term; + [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", Name = "Term", SortOrder = 106, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] + public string[] Terms; [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "Data file containing the terms", ShortName = "data", SortOrder = 110, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] public string DataFile; @@ -146,8 +146,8 @@ public abstract class ArgumentsBase : TransformInputBase public sealed class Arguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal sealed class ColInfo @@ -323,11 +323,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { - if ((args.Term != null || !string.IsNullOrEmpty(args.Terms)) && + if ((args.Terms != null || !string.IsNullOrEmpty(args.Term)) && (!string.IsNullOrWhiteSpace(args.DataFile) || args.Loader != null || !string.IsNullOrWhiteSpace(args.TermsColumn))) { @@ -338,7 +338,7 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var sortOrder = item.Sort ?? args.Sort; if (!Enum.IsDefined(typeof(SortOrder), sortOrder)) throw env.ExceptUserArg(nameof(args.Sort), "Undefined sorting criteria '{0}' detected for column '{1}'", sortOrder, item.Name); @@ -348,9 +348,9 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat item.Source ?? item.Name, item.MaxNumTerms ?? args.MaxNumTerms, sortOrder, - item.Term, + item.Terms, item.TextKeyValues ?? args.TextKeyValues); - cols[i].Terms = item.Terms ?? args.Terms; + cols[i].Terms = item.Term ?? args.Term; }; var keyData = GetKeyDataViewOrNull(env, ch, args.DataFile, args.TermsColumn, args.Loader, out bool autoLoaded); return new ValueToKeyMappingTransformer(env, input, cols, keyData, autoLoaded).MakeDataTransform(input); diff --git a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformerImpl.cs b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformerImpl.cs index e0f5b0f9fb..21ec0c3d08 100644 --- a/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformerImpl.cs +++ b/src/Microsoft.ML.Data/Transforms/ValueToKeyMappingTransformerImpl.cs @@ -220,7 +220,7 @@ public override void ParseAddTermArg(ref ReadOnlyMemory terms, IChannel ch } if (Count == 0) - throw ch.ExceptUserArg(nameof(Arguments.Terms), "Nothing parsed as '{0}'", ItemType); + throw ch.ExceptUserArg(nameof(Arguments.Term), "Nothing parsed as '{0}'", ItemType); } /// @@ -245,7 +245,7 @@ public override void ParseAddTermArg(string[] terms, IChannel ch) } if (Count == 0) - throw ch.ExceptUserArg(nameof(Arguments.Terms), "Nothing parsed as '{0}'", ItemType); + throw ch.ExceptUserArg(nameof(Arguments.Term), "Nothing parsed as '{0}'", ItemType); } } diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs index 8e163bee6b..9da5c1e745 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/BaseSubsetSelector.cs @@ -72,7 +72,7 @@ public IEnumerable GetBatches(Random rand) // Split the data into train and test sets. string name = Data.Data.Schema.GetTempColumnName(); var args = new GenerateNumberTransform.Arguments(); - args.Column = new[] { new GenerateNumberTransform.Column() { Name = name } }; + args.Columns = new[] { new GenerateNumberTransform.Column() { Name = name } }; args.Seed = (uint)rand.Next(); var view = new GenerateNumberTransform(Host, args, Data.Data); var viewTest = new RangeFilter(Host, new RangeFilter.Arguments() { Column = name, Max = ValidationDatasetProportion }, view); diff --git a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs index af7b93a0b5..3ed650e3cd 100644 --- a/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs +++ b/src/Microsoft.ML.Ensemble/Selector/SubsetSelector/RandomPartitionSelector.cs @@ -38,7 +38,7 @@ public override IEnumerable GetSubsets(Batch batch, Random rand) { string name = Data.Data.Schema.GetTempColumnName(); var args = new GenerateNumberTransform.Arguments(); - args.Column = new[] { new GenerateNumberTransform.Column() { Name = name } }; + args.Columns = new[] { new GenerateNumberTransform.Column() { Name = name } }; args.Seed = (uint)rand.Next(); IDataTransform view = new GenerateNumberTransform(Host, args, Data.Data); diff --git a/src/Microsoft.ML.EntryPoints/CrossValidationMacro.cs b/src/Microsoft.ML.EntryPoints/CrossValidationMacro.cs index 7835682853..328301e419 100644 --- a/src/Microsoft.ML.EntryPoints/CrossValidationMacro.cs +++ b/src/Microsoft.ML.EntryPoints/CrossValidationMacro.cs @@ -399,7 +399,7 @@ public static CombinedOutput CombineMetrics(IHostEnvironment env, CombineMetrics idv.Schema[col].Name.Equals(MetricKinds.ColumnNames.Count)) { input.ConfusionMatrix[i] = new ChooseColumnsByIndexTransform(env, - new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Index = new[] { col } }, idv); + new ChooseColumnsByIndexTransform.Arguments() { Drop = true, Indices = new[] { col } }, idv); break; } } diff --git a/src/Microsoft.ML.EntryPoints/FeatureCombiner.cs b/src/Microsoft.ML.EntryPoints/FeatureCombiner.cs index 006f990b7f..19538888bd 100644 --- a/src/Microsoft.ML.EntryPoints/FeatureCombiner.cs +++ b/src/Microsoft.ML.EntryPoints/FeatureCombiner.cs @@ -76,7 +76,7 @@ public static CommonOutputs.TransformOutput PrepareFeatures(IHostEnvironment env viewTrain = ColumnConcatenatingTransformer.Create(host, new ColumnConcatenatingTransformer.TaggedArguments() { - Column = + Columns = new[] { new ColumnConcatenatingTransformer.TaggedColumn() { Name = nameFeat, Source = concatNames.ToArray() } } }, viewTrain); @@ -101,8 +101,8 @@ private static IDataView ApplyKeyToVec(List new ValueToKeyMappingTransformer.Column() { Name = c.Name, Source = c.Name, Terms = GetTerms(viewTrain, c.InputColumnName) }) + Columns = ktv + .Select(c => new ValueToKeyMappingTransformer.Column() { Name = c.Name, Source = c.Name, Term = GetTerms(viewTrain, c.InputColumnName) }) .ToArray(), TextKeyValues = true }, @@ -245,7 +245,7 @@ public static CommonOutputs.TransformOutput PrepareClassificationLabel(IHostEnvi var args = new ValueToKeyMappingTransformer.Arguments() { - Column = new[] + Columns = new[] { new ValueToKeyMappingTransformer.Column() { @@ -302,7 +302,7 @@ public static CommonOutputs.TransformOutput PrepareRegressionLabel(IHostEnvironm var args = new TypeConvertingTransformer.Arguments() { - Column = new[] + Columns = new[] { new TypeConvertingTransformer.Column() { diff --git a/src/Microsoft.ML.EntryPoints/MacroUtils.cs b/src/Microsoft.ML.EntryPoints/MacroUtils.cs index 8c340d8c58..1c71b6964c 100644 --- a/src/Microsoft.ML.EntryPoints/MacroUtils.cs +++ b/src/Microsoft.ML.EntryPoints/MacroUtils.cs @@ -76,13 +76,13 @@ public static EvaluateInputBase GetEvaluatorArgs(TrainerKinds kind, out string e public sealed class ArrayIPredictorModelInput { [Argument(ArgumentType.Required, HelpText = "The models", SortOrder = 1)] - public PredictorModel[] Model; + public PredictorModel[] Models; } public sealed class ArrayIPredictorModelOutput { [TlcModule.Output(Desc = "The model array", SortOrder = 1)] - public PredictorModel[] OutputModel; + public PredictorModel[] OutputModels; } [TlcModule.EntryPoint(Desc = "Create an array variable of " + nameof(PredictorModel), Name = "Data.PredictorModelArrayConverter")] @@ -90,7 +90,7 @@ public static ArrayIPredictorModelOutput MakeArray(IHostEnvironment env, ArrayIP { var result = new ArrayIPredictorModelOutput { - OutputModel = input.Model + OutputModels = input.Models }; return result; } @@ -124,7 +124,7 @@ internal static void ConvertIPredictorModelsToArray(IHostEnvironment env, RunCon var inputBindingMap = new Dictionary>(); var inputMap = new Dictionary(); - var argName = nameof(predictorArrayConverterArgs.Model); + var argName = nameof(predictorArrayConverterArgs.Models); inputBindingMap.Add(argName, new List()); for (int i = 0; i < predModelVars.Length; i++) { @@ -134,7 +134,7 @@ internal static void ConvertIPredictorModelsToArray(IHostEnvironment env, RunCon } var outputMap = new Dictionary(); var output = new ArrayVar(); - outputMap.Add(nameof(MacroUtils.ArrayIPredictorModelOutput.OutputModel), outputVarName); + outputMap.Add(nameof(MacroUtils.ArrayIPredictorModelOutput.OutputModels), outputVarName); var arrayConvertNode = EntryPointNode.Create(env, "Data.PredictorModelArrayConverter", predictorArrayConverterArgs, context, inputBindingMap, inputMap, outputMap); subGraphNodes.Add(arrayConvertNode); diff --git a/src/Microsoft.ML.EntryPoints/OneVersusAllMacro.cs b/src/Microsoft.ML.EntryPoints/OneVersusAllMacro.cs index b35f0d8cb3..c80c5f1ff5 100644 --- a/src/Microsoft.ML.EntryPoints/OneVersusAllMacro.cs +++ b/src/Microsoft.ML.EntryPoints/OneVersusAllMacro.cs @@ -55,7 +55,7 @@ private static Var ProcessClass(IHostEnvironment env, List>(); var inputMap = new Dictionary(); diff --git a/src/Microsoft.ML.EntryPoints/ScoreColumnSelector.cs b/src/Microsoft.ML.EntryPoints/ScoreColumnSelector.cs index 3de88df465..aaad112742 100644 --- a/src/Microsoft.ML.EntryPoints/ScoreColumnSelector.cs +++ b/src/Microsoft.ML.EntryPoints/ScoreColumnSelector.cs @@ -20,7 +20,7 @@ public sealed class ScoreColumnSelectorInput : TransformInputBase public string[] ExtraColumns; } - [TlcModule.EntryPoint(Name = "Transforms.ScoreColumnSelector", Desc = "Selects only the last score columns and the extra columns specified in the arguments.", UserName = "Choose Columns By Index")] + [TlcModule.EntryPoint(Name = "Transforms.ScoreColumnSelector", Desc = "Selects only the last score columns and the extra columns specified in the arguments.", UserName = "Choose Columns By Indices")] public static CommonOutputs.TransformOutput SelectColumns(IHostEnvironment env, ScoreColumnSelectorInput input) { Contracts.CheckValue(env, nameof(env)); @@ -37,7 +37,7 @@ public static CommonOutputs.TransformOutput SelectColumns(IHostEnvironment env, continue; indices.Add(i); } - var newView = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Index = indices.ToArray() }, input.Data); + var newView = new ChooseColumnsByIndexTransform(env, new ChooseColumnsByIndexTransform.Arguments() { Indices = indices.ToArray() }, input.Data); return new CommonOutputs.TransformOutput { Model = new TransformModelImpl(env, newView, input.Data), OutputData = newView }; } diff --git a/src/Microsoft.ML.EntryPoints/TrainTestSplit.cs b/src/Microsoft.ML.EntryPoints/TrainTestSplit.cs index 486f0a0d3b..a6743fab56 100644 --- a/src/Microsoft.ML.EntryPoints/TrainTestSplit.cs +++ b/src/Microsoft.ML.EntryPoints/TrainTestSplit.cs @@ -87,7 +87,7 @@ public static string CreateStratificationColumn(IHost host, ref IDataView data, data = new GenerateNumberTransform(host, new GenerateNumberTransform.Arguments { - Column = new[] { new GenerateNumberTransform.Column { Name = stratCol } } + Columns = new[] { new GenerateNumberTransform.Column { Name = stratCol } } }, data); } else @@ -95,7 +95,7 @@ public static string CreateStratificationColumn(IHost host, ref IDataView data, data = new HashJoiningTransform(host, new HashJoiningTransform.Arguments { - Column = new[] { new HashJoiningTransform.Column { Name = stratCol, Source = stratificationColumn } }, + Columns = new[] { new HashJoiningTransform.Column { Name = stratCol, Source = stratificationColumn } }, Join = true, HashBits = 30 }, data); diff --git a/src/Microsoft.ML.FastTree/FastTree.cs b/src/Microsoft.ML.FastTree/FastTree.cs index 72700b9dc0..36c93856a4 100644 --- a/src/Microsoft.ML.FastTree/FastTree.cs +++ b/src/Microsoft.ML.FastTree/FastTree.cs @@ -1377,7 +1377,7 @@ private Dataset Construct(RoleMappedData examples, ref int numExamples, int maxB { var convArgs = new LabelConvertTransform.Arguments(); var convCol = new LabelConvertTransform.Column() { Name = labelName, Source = labelName }; - convArgs.Column = new LabelConvertTransform.Column[] { convCol }; + convArgs.Columns = new LabelConvertTransform.Column[] { convCol }; data = new LabelConvertTransform(Host, convArgs, data); } // Convert the group column, if one exists. diff --git a/src/Microsoft.ML.HalLearners/VectorWhitening.cs b/src/Microsoft.ML.HalLearners/VectorWhitening.cs index af71981a30..31cdd0b201 100644 --- a/src/Microsoft.ML.HalLearners/VectorWhitening.cs +++ b/src/Microsoft.ML.HalLearners/VectorWhitening.cs @@ -57,8 +57,8 @@ internal static class Defaults public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Whitening kind (PCA/ZCA)")] public WhiteningKind Kind = Defaults.Kind; @@ -295,7 +295,7 @@ internal static VectorWhiteningTransformer Create(IHostEnvironment env, ModelLoa // Factory method for SignatureDataTransform. internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDataView input) { - var infos = args.Column.Select(colPair => new ColumnInfo(colPair, args)).ToArray(); + var infos = args.Columns.Select(colPair => new ColumnInfo(colPair, args)).ToArray(); (var models, var invModels) = TrainVectorWhiteningTransform(env, input, infos); return new VectorWhiteningTransformer(env, models, invModels, infos).MakeDataTransform(input); } diff --git a/src/Microsoft.ML.ImageAnalytics/ImageGrayscaleTransform.cs b/src/Microsoft.ML.ImageAnalytics/ImageGrayscaleTransform.cs index b3cd495539..8808584eec 100644 --- a/src/Microsoft.ML.ImageAnalytics/ImageGrayscaleTransform.cs +++ b/src/Microsoft.ML.ImageAnalytics/ImageGrayscaleTransform.cs @@ -59,8 +59,8 @@ internal bool TryUnparse(StringBuilder sb) public class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal const string Summary = "Convert image into grayscale."; @@ -100,9 +100,9 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - return new ImageGrayscaleTransformer(env, args.Column.Select(x => (x.Name, x.Source ?? x.Name)).ToArray()) + return new ImageGrayscaleTransformer(env, args.Columns.Select(x => (x.Name, x.Source ?? x.Name)).ToArray()) .MakeDataTransform(input); } diff --git a/src/Microsoft.ML.ImageAnalytics/ImageLoaderTransform.cs b/src/Microsoft.ML.ImageAnalytics/ImageLoaderTransform.cs index 171cc5670f..9a5952fc9c 100644 --- a/src/Microsoft.ML.ImageAnalytics/ImageLoaderTransform.cs +++ b/src/Microsoft.ML.ImageAnalytics/ImageLoaderTransform.cs @@ -56,9 +56,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", - ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Folder where to search for images", ShortName = "folder")] public string ImageFolder; @@ -87,7 +86,7 @@ public ImageLoaderTransformer(IHostEnvironment env, string imageFolder = null, p // Factory method for SignatureDataTransform. internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDataView data) { - return new ImageLoaderTransformer(env, args.ImageFolder, args.Column.Select(x => (x.Name, x.Source ?? x.Name)).ToArray()) + return new ImageLoaderTransformer(env, args.ImageFolder, args.Columns.Select(x => (x.Name, x.Source ?? x.Name)).ToArray()) .MakeDataTransform(data); } diff --git a/src/Microsoft.ML.ImageAnalytics/ImagePixelExtractorTransform.cs b/src/Microsoft.ML.ImageAnalytics/ImagePixelExtractorTransform.cs index 7f33af1855..e5fc313fca 100644 --- a/src/Microsoft.ML.ImageAnalytics/ImagePixelExtractorTransform.cs +++ b/src/Microsoft.ML.ImageAnalytics/ImagePixelExtractorTransform.cs @@ -88,8 +88,8 @@ internal bool TryUnparse(StringBuilder sb) public class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to use alpha channel", ShortName = "alpha")] public bool UseAlpha = false; @@ -372,12 +372,12 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var columns = new ColumnInfo[args.Column.Length]; + var columns = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < columns.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; columns[i] = new ColumnInfo(item, args); } diff --git a/src/Microsoft.ML.ImageAnalytics/ImageResizerTransform.cs b/src/Microsoft.ML.ImageAnalytics/ImageResizerTransform.cs index 3630298eba..cdafcda937 100644 --- a/src/Microsoft.ML.ImageAnalytics/ImageResizerTransform.cs +++ b/src/Microsoft.ML.ImageAnalytics/ImageResizerTransform.cs @@ -91,8 +91,8 @@ internal bool TryUnparse(StringBuilder sb) public class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.Required, HelpText = "Resized width of the image", ShortName = "width")] public int ImageWidth; @@ -218,12 +218,12 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var cols = new ColumnInfo[args.Column.Length]; + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo( item.Name, item.ImageWidth ?? args.ImageWidth, diff --git a/src/Microsoft.ML.ImageAnalytics/VectorToImageTransform.cs b/src/Microsoft.ML.ImageAnalytics/VectorToImageTransform.cs index bd9219cc17..cc0a5da52e 100644 --- a/src/Microsoft.ML.ImageAnalytics/VectorToImageTransform.cs +++ b/src/Microsoft.ML.ImageAnalytics/VectorToImageTransform.cs @@ -83,8 +83,8 @@ internal bool TryUnparse(StringBuilder sb) public class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to use alpha channel", ShortName = "alpha")] public bool ContainsAlpha = false; @@ -248,17 +248,17 @@ private static VersionInfo GetVersionInfo() // Public constructor corresponding to SignatureDataTransform. public VectorToImageTransform(IHostEnvironment env, Arguments args, IDataView input) - : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Column, input, + : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Columns, input, t => t is VectorType ? null : "Expected VectorType type") { Host.AssertNonEmpty(Infos); - Host.Assert(Infos.Length == Utils.Size(args.Column)); + Host.Assert(Infos.Length == Utils.Size(args.Columns)); _exes = new ColInfoEx[Infos.Length]; _types = new ImageType[Infos.Length]; for (int i = 0; i < _exes.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; _exes[i] = new ColInfoEx(item, args); _types[i] = new ImageType(_exes[i].Height, _exes[i].Width); } diff --git a/src/Microsoft.ML.Maml/ChainCommand.cs b/src/Microsoft.ML.Maml/ChainCommand.cs index 80e9ef6359..b9068a92b9 100644 --- a/src/Microsoft.ML.Maml/ChainCommand.cs +++ b/src/Microsoft.ML.Maml/ChainCommand.cs @@ -21,8 +21,8 @@ internal sealed class ChainCommand : ICommand public sealed class Arguments { #pragma warning disable 649 // never assigned - [Argument(ArgumentType.Multiple, HelpText = "Command", ShortName = "cmd", SignatureType = typeof(SignatureCommand))] - public IComponentFactory[] Command; + [Argument(ArgumentType.Multiple, HelpText = "Command", Name = "Command", ShortName = "cmd", SignatureType = typeof(SignatureCommand))] + public IComponentFactory[] Commands; #pragma warning restore 649 // never assigned } @@ -49,13 +49,13 @@ public void Run() int count = 0; sw.Start(); - if (_args.Command != null) + if (_args.Commands != null) { - for (int i = 0; i < _args.Command.Length; i++) + for (int i = 0; i < _args.Commands.Length; i++) { using (var chCmd = _host.Start(string.Format(CultureInfo.InvariantCulture, "Command[{0}]", i))) { - var sub = _args.Command[i]; + var sub = _args.Commands[i]; chCmd.Info("====================================================================================="); chCmd.Info("Executing: {0}", sub); diff --git a/src/Microsoft.ML.PCA/PcaTransformer.cs b/src/Microsoft.ML.PCA/PcaTransformer.cs index 7d535ec781..15918c4031 100644 --- a/src/Microsoft.ML.PCA/PcaTransformer.cs +++ b/src/Microsoft.ML.PCA/PcaTransformer.cs @@ -38,8 +38,8 @@ public sealed class PcaTransformer : OneToOneTransformerBase { public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.Multiple, HelpText = "The name of the weight column", ShortName = "weight", Purpose = SpecialPurpose.ColumnName)] public string WeightColumn = PrincipalComponentAnalysisEstimator.Defaults.WeightColumn; @@ -292,8 +292,8 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = args.Column.Select(item => new ColumnInfo( + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = args.Columns.Select(item => new ColumnInfo( item.Name, item.Source, item.WeightColumn, diff --git a/src/Microsoft.ML.ResultProcessor/ResultProcessor.cs b/src/Microsoft.ML.ResultProcessor/ResultProcessor.cs index 1635ad71c9..2ce8ae224f 100644 --- a/src/Microsoft.ML.ResultProcessor/ResultProcessor.cs +++ b/src/Microsoft.ML.ResultProcessor/ResultProcessor.cs @@ -432,9 +432,9 @@ private static bool ValidateMamlOutput(string filename, string[] rawLines, out L var chainArgs = commandArgs as ChainCommand.Arguments; if (chainArgs != null) { - if (Utils.Size(chainArgs.Command) == 0) + if (Utils.Size(chainArgs.Commands) == 0) return null; - var acceptableCommand = chainArgs.Command.Cast().FirstOrDefault(x => + var acceptableCommand = chainArgs.Commands.Cast().FirstOrDefault(x => string.Equals(x.Name, "CV", StringComparison.OrdinalIgnoreCase) || string.Equals(x.Name, "TrainTest", StringComparison.OrdinalIgnoreCase) || string.Equals(x.Name, "Test", StringComparison.OrdinalIgnoreCase)); diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedLinear.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedLinear.cs index c144c5c90b..abbfe31549 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedLinear.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedLinear.cs @@ -11,7 +11,6 @@ using Microsoft.ML.Internal.Utilities; using Microsoft.ML.Learners; using Microsoft.ML.Numeric; -using Float = System.Single; // TODO: Check if it works properly if Averaged is set to false @@ -22,7 +21,7 @@ public abstract class AveragedLinearArguments : OnlineLinearArguments [Argument(ArgumentType.AtMostOnce, HelpText = "Learning rate", ShortName = "lr", SortOrder = 50)] [TGUI(Label = "Learning rate", SuggestedSweeps = "0.01,0.1,0.5,1.0")] [TlcModule.SweepableDiscreteParam("LearningRate", new object[] { 0.01, 0.1, 0.5, 1.0 })] - public Float LearningRate = AveragedDefaultArgs.LearningRate; + public float LearningRate = AveragedDefaultArgs.LearningRate; [Argument(ArgumentType.AtMostOnce, HelpText = "Decrease learning rate", ShortName = "decreaselr", SortOrder = 50)] [TGUI(Label = "Decrease Learning Rate", Description = "Decrease learning rate as iterations progress")] @@ -38,10 +37,10 @@ public abstract class AveragedLinearArguments : OnlineLinearArguments [Argument(ArgumentType.AtMostOnce, HelpText = "L2 Regularization Weight", ShortName = "reg", SortOrder = 50)] [TGUI(Label = "L2 Regularization Weight")] [TlcModule.SweepableFloatParam("L2RegularizerWeight", 0.0f, 0.4f)] - public Float L2RegularizerWeight = AveragedDefaultArgs.L2RegularizerWeight; + public float L2RegularizerWeight = AveragedDefaultArgs.L2RegularizerWeight; [Argument(ArgumentType.AtMostOnce, HelpText = "Extra weight given to more recent updates", ShortName = "rg")] - public Float RecencyGain = 0; + public float RecencyGain = 0; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether Recency Gain is multiplicative (vs. additive)", ShortName = "rgm")] public bool RecencyGainMulti = false; @@ -50,14 +49,14 @@ public abstract class AveragedLinearArguments : OnlineLinearArguments public bool Averaged = true; [Argument(ArgumentType.AtMostOnce, HelpText = "The inexactness tolerance for averaging", ShortName = "avgtol")] - public Float AveragedTolerance = (Float)1e-2; + public float AveragedTolerance = (float)1e-2; [BestFriend] internal class AveragedDefaultArgs : OnlineDefaultArgs { - public const Float LearningRate = 1; + public const float LearningRate = 1; public const bool DecreaseLearningRate = false; - public const Float L2RegularizerWeight = 0; + public const float L2RegularizerWeight = 0; } internal abstract IComponentFactory LossFunctionFactory { get; } @@ -72,20 +71,20 @@ public abstract class AveragedLinearTrainer : OnlineLinear private protected abstract class AveragedTrainStateBase : TrainStateBase { - protected Float Gain; + protected float Gain; protected int NumNoUpdates; // For computing averaged weights and bias (if needed) - protected VBuffer TotalWeights; - protected Float TotalBias; - protected Double NumWeightUpdates; + protected VBuffer TotalWeights; + protected float TotalBias; + protected double NumWeightUpdates; // The accumulated gradient of loss against gradient for all updates so far in the // totalled model, versus those pending in the weight vector that have not yet been // added to the total model. - protected Double TotalMultipliers; - protected Double PendingMultipliers; + protected double TotalMultipliers; + protected double PendingMultipliers; protected readonly bool Averaged; private readonly long _resetWeightsAfterXExamples; @@ -120,13 +119,13 @@ private protected AveragedTrainStateBase(IChannel ch, int numFeatures, LinearMod /// /// Return the raw margin from the decision hyperplane /// - public Float AveragedMargin(in VBuffer feat) + public float AveragedMargin(in VBuffer feat) { Contracts.Assert(Averaged); - return (TotalBias + VectorUtils.DotProduct(in feat, in TotalWeights)) / (Float)NumWeightUpdates; + return (TotalBias + VectorUtils.DotProduct(in feat, in TotalWeights)) / (float)NumWeightUpdates; } - public override Float Margin(in VBuffer feat) + public override float Margin(in VBuffer feat) => Averaged ? AveragedMargin(in feat) : CurrentMargin(in feat); public override void FinishIteration(IChannel ch) @@ -149,21 +148,21 @@ public override void FinishIteration(IChannel ch) if (_args.ResetWeightsAfterXExamples == 0) { ch.Info("Resetting weights to average weights"); - VectorUtils.ScaleInto(in TotalWeights, 1 / (Float)NumWeightUpdates, ref Weights); + VectorUtils.ScaleInto(in TotalWeights, 1 / (float)NumWeightUpdates, ref Weights); WeightsScale = 1; - Bias = TotalBias / (Float)NumWeightUpdates; + Bias = TotalBias / (float)NumWeightUpdates; } } base.FinishIteration(ch); } - public override void ProcessDataInstance(IChannel ch, in VBuffer feat, Float label, Float weight) + public override void ProcessDataInstance(IChannel ch, in VBuffer feat, float label, float weight) { base.ProcessDataInstance(ch, in feat, label, weight); // compute the update and update if needed - Float output = CurrentMargin(in feat); + float output = CurrentMargin(in feat); Double loss = _loss.Loss(output, label); // REVIEW: Should this be biasUpdate != 0? @@ -183,10 +182,10 @@ public override void ProcessDataInstance(IChannel ch, in VBuffer feat, Fl } // Make final adjustments to update parameters. - Float rate = _args.LearningRate; + float rate = _args.LearningRate; if (_args.DecreaseLearningRate) - rate /= MathUtils.Sqrt((Float)NumWeightUpdates + NumNoUpdates + 1); - Float biasUpdate = -rate * _loss.Derivative(output, label); + rate /= MathUtils.Sqrt((float)NumWeightUpdates + NumNoUpdates + 1); + float biasUpdate = -rate * _loss.Derivative(output, label); // Perform the update to weights and bias. VectorUtils.AddMult(in feat, biasUpdate / WeightsScale, ref Weights); @@ -208,9 +207,9 @@ public override void ProcessDataInstance(IChannel ch, in VBuffer feat, Fl if (_resetWeightsAfterXExamples > 0 && NumIterExamples % _resetWeightsAfterXExamples == 0) { ch.Info("Resetting weights to average weights"); - VectorUtils.ScaleInto(in TotalWeights, 1 / (Float)NumWeightUpdates, ref Weights); + VectorUtils.ScaleInto(in TotalWeights, 1 / (float)NumWeightUpdates, ref Weights); WeightsScale = 1; - Bias = TotalBias / (Float)NumWeightUpdates; + Bias = TotalBias / (float)NumWeightUpdates; } } } @@ -235,7 +234,7 @@ private void IncrementAverageNonLazy() // If gains got too big, rescale! if (Gain > 1000) { - const Float scale = (Float)1e-6; + const float scale = (float)1e-6; Gain *= scale; TotalBias *= scale; VectorUtils.ScaleBy(ref TotalWeights, scale); diff --git a/src/Microsoft.ML.StaticPipe/TextLoaderStatic.cs b/src/Microsoft.ML.StaticPipe/TextLoaderStatic.cs index 0deeb0a4d8..0c4ce483c6 100644 --- a/src/Microsoft.ML.StaticPipe/TextLoaderStatic.cs +++ b/src/Microsoft.ML.StaticPipe/TextLoaderStatic.cs @@ -85,7 +85,7 @@ public override IDataReaderEstimator 0, nameof(args.Column)); + host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); host.CheckUserArg(args.Count > 0, nameof(args.Count)); - var columnInfos = args.Column.Select(inColName => new ColumnInfo(inColName, minCount: args.Count)).ToArray(); + var columnInfos = args.Columns.Select(inColName => new ColumnInfo(inColName, minCount: args.Count)).ToArray(); return new CountFeatureSelectingEstimator(env, columnInfos).Fit(input).Transform(input) as IDataTransform; } @@ -245,11 +245,11 @@ public static long[][] Train(IHostEnvironment env, IDataView input, string[] col int colSrc; var colName = columns[i]; if (!schema.TryGetColumnIndex(colName, out colSrc)) - throw env.ExceptUserArg(nameof(CountFeatureSelectingEstimator.Arguments.Column), "Source column '{0}' not found", colName); + throw env.ExceptUserArg(nameof(CountFeatureSelectingEstimator.Arguments.Columns), "Source column '{0}' not found", colName); var colType = schema[colSrc].Type; if (colType is VectorType vectorType && !vectorType.IsKnownSize) - throw env.ExceptUserArg(nameof(CountFeatureSelectingEstimator.Arguments.Column), "Variable length column '{0}' is not allowed", colName); + throw env.ExceptUserArg(nameof(CountFeatureSelectingEstimator.Arguments.Columns), "Variable length column '{0}' is not allowed", colName); activeCols.Add(schema[colSrc]); colSrcs[i] = colSrc; diff --git a/src/Microsoft.ML.Transforms/EntryPoints/TextAnalytics.cs b/src/Microsoft.ML.Transforms/EntryPoints/TextAnalytics.cs index 853037a800..123a1fa96f 100644 --- a/src/Microsoft.ML.Transforms/EntryPoints/TextAnalytics.cs +++ b/src/Microsoft.ML.Transforms/EntryPoints/TextAnalytics.cs @@ -120,7 +120,7 @@ public static CommonOutputs.TransformOutput LightLda(IHostEnvironment env, Laten env.CheckValue(input, nameof(input)); var h = EntryPointUtils.CheckArgsAndCreateHost(env, "LightLda", input); - var cols = input.Column.Select(colPair => new LatentDirichletAllocationTransformer.ColumnInfo(colPair, input)).ToArray(); + var cols = input.Columns.Select(colPair => new LatentDirichletAllocationTransformer.ColumnInfo(colPair, input)).ToArray(); var est = new LatentDirichletAllocationEstimator(h, cols); var view = est.Fit(input.Data).Transform(input.Data); diff --git a/src/Microsoft.ML.Transforms/GcnTransform.cs b/src/Microsoft.ML.Transforms/GcnTransform.cs index 53cffb2759..3ae4156ec2 100644 --- a/src/Microsoft.ML.Transforms/GcnTransform.cs +++ b/src/Microsoft.ML.Transforms/GcnTransform.cs @@ -53,8 +53,8 @@ public sealed class LpNormalizingTransformer : OneToOneTransformerBase { public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The norm to use to normalize each sample", ShortName = "norm", SortOrder = 1)] public LpNormalizingEstimatorBase.NormalizerKind NormKind = LpNormalizingEstimatorBase.Defaults.NormKind; @@ -65,8 +65,8 @@ public sealed class Arguments : TransformInputBase public sealed class GcnArguments : TransformInputBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public GcnColumn[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public GcnColumn[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Subtract mean from each value before normalizing", SortOrder = 1)] public bool SubMean = LpNormalizingEstimatorBase.Defaults.GcnSubstractMean; @@ -327,13 +327,13 @@ internal static IDataTransform Create(IHostEnvironment env, GcnArguments args, I env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new GcnColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new GcnColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new GcnColumnInfo( item.Name, item.Source ?? item.Name, @@ -354,13 +354,13 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new LpNormColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new LpNormColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new LpNormColumnInfo( item.Name, item.Source ?? item.Name, diff --git a/src/Microsoft.ML.Transforms/GroupTransform.cs b/src/Microsoft.ML.Transforms/GroupTransform.cs index 2a3435b2dd..a6476d5011 100644 --- a/src/Microsoft.ML.Transforms/GroupTransform.cs +++ b/src/Microsoft.ML.Transforms/GroupTransform.cs @@ -85,13 +85,13 @@ private static VersionInfo GetVersionInfo() // as group keys. public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple, HelpText = "Columns to group by", ShortName = "g", SortOrder = 1, + [Argument(ArgumentType.Multiple, HelpText = "Columns to group by", Name = "GroupKey", ShortName = "g", SortOrder = 1, Purpose = SpecialPurpose.ColumnSelector)] - public string[] GroupKey; + public string[] GroupKeys; // The column names remain the same, there's no option to rename the column. - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to group together", ShortName = "col", SortOrder = 2)] - public string[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to group together", Name = "Column", ShortName = "col", SortOrder = 2)] + public string[] Columns; } private readonly GroupBinding _groupBinding; @@ -104,7 +104,7 @@ public sealed class Arguments : TransformInputBase /// Columns to group by /// Columns to group together public GroupTransform(IHostEnvironment env, IDataView input, string groupKey, params string[] columns) - : this(env, new Arguments() { GroupKey = new[] { groupKey }, Column = columns }, input) + : this(env, new Arguments() { GroupKeys = new[] { groupKey }, Columns = columns }, input) { } @@ -112,9 +112,9 @@ public GroupTransform(IHostEnvironment env, Arguments args, IDataView input) : base(env, RegistrationName, input) { Host.CheckValue(args, nameof(args)); - Host.CheckUserArg(Utils.Size(args.GroupKey) > 0, nameof(args.GroupKey), "There must be at least one group key"); + Host.CheckUserArg(Utils.Size(args.GroupKeys) > 0, nameof(args.GroupKeys), "There must be at least one group key"); - _groupBinding = new GroupBinding(Host, Source.Schema, args.GroupKey, args.Column ?? new string[0]); + _groupBinding = new GroupBinding(Host, Source.Schema, args.GroupKeys, args.Columns ?? new string[0]); } public static GroupTransform Create(IHostEnvironment env, ModelLoadContext ctx, IDataView input) @@ -225,10 +225,10 @@ public GroupBinding(IExceptionContext ectx, Schema inputSchema, string[] groupCo _inputSchema = inputSchema; _groupColumns = groupColumns; - GroupColumnIndexes = GetColumnIds(inputSchema, groupColumns, x => _ectx.ExceptUserArg(nameof(Arguments.GroupKey), x)); + GroupColumnIndexes = GetColumnIds(inputSchema, groupColumns, x => _ectx.ExceptUserArg(nameof(Arguments.GroupKeys), x)); _keepColumns = keepColumns; - KeepColumnIndexes = GetColumnIds(inputSchema, keepColumns, x => _ectx.ExceptUserArg(nameof(Arguments.Column), x)); + KeepColumnIndexes = GetColumnIds(inputSchema, keepColumns, x => _ectx.ExceptUserArg(nameof(Arguments.Columns), x)); // Compute output schema from the specified input schema. OutputSchema = BuildOutputSchema(inputSchema); diff --git a/src/Microsoft.ML.Transforms/HashJoiningTransform.cs b/src/Microsoft.ML.Transforms/HashJoiningTransform.cs index de7ddf493c..b0a4edbea8 100644 --- a/src/Microsoft.ML.Transforms/HashJoiningTransform.cs +++ b/src/Microsoft.ML.Transforms/HashJoiningTransform.cs @@ -47,9 +47,10 @@ private static class Defaults public sealed class Arguments : TransformInputBase { [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", + Name = "Column", ShortName = "col", SortOrder = 1)] - public Column[] Column; + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether the values need to be combined for a single hash")] public bool Join = Defaults.Join; @@ -188,16 +189,16 @@ public HashJoiningTransform(IHostEnvironment env, string source = null, bool join = Defaults.Join, int hashBits = Defaults.HashBits) - : this(env, new Arguments() { Column = new[] { new Column() { Source = source ?? name, Name = name } }, Join = join, HashBits = hashBits }, input) + : this(env, new Arguments() { Columns = new[] { new Column() { Source = source ?? name, Name = name } }, Join = join, HashBits = hashBits }, input) { } /// public HashJoiningTransform(IHostEnvironment env, Arguments args, IDataView input) - : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Column, input, TestColumnType) + : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Columns, input, TestColumnType) { Host.AssertNonEmpty(Infos); - Host.Assert(Infos.Length == Utils.Size(args.Column)); + Host.Assert(Infos.Length == Utils.Size(args.Columns)); if (args.HashBits < NumBitsMin || args.HashBits >= NumBitsLim) throw Host.ExceptUserArg(nameof(args.HashBits), "hashBits should be between {0} and {1} inclusive", NumBitsMin, NumBitsLim - 1); @@ -205,14 +206,14 @@ public HashJoiningTransform(IHostEnvironment env, Arguments args, IDataView inpu _exes = new ColumnInfoEx[Infos.Length]; for (int i = 0; i < Infos.Length; i++) { - var hashBits = args.Column[i].HashBits ?? args.HashBits; + var hashBits = args.Columns[i].HashBits ?? args.HashBits; Host.CheckUserArg(NumBitsMin <= hashBits && hashBits < NumBitsLim, nameof(args.HashBits)); _exes[i] = CreateColumnInfoEx( - args.Column[i].Join ?? args.Join, - args.Column[i].CustomSlotMap, - args.Column[i].HashBits ?? args.HashBits, - args.Column[i].Seed ?? args.Seed, - args.Column[i].Ordered ?? args.Ordered, + args.Columns[i].Join ?? args.Join, + args.Columns[i].CustomSlotMap, + args.Columns[i].HashBits ?? args.HashBits, + args.Columns[i].Seed ?? args.Seed, + args.Columns[i].Ordered ?? args.Ordered, Infos[i]); } diff --git a/src/Microsoft.ML.Transforms/KeyToVectorMapping.cs b/src/Microsoft.ML.Transforms/KeyToVectorMapping.cs index 871197afdd..11166bafb3 100644 --- a/src/Microsoft.ML.Transforms/KeyToVectorMapping.cs +++ b/src/Microsoft.ML.Transforms/KeyToVectorMapping.cs @@ -34,8 +34,8 @@ public sealed class KeyToBinaryVectorMappingTransformer : OneToOneTransformerBas public sealed class Arguments { [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", - ShortName = "col", SortOrder = 1)] - public KeyToVectorMappingTransformer.Column[] Column; + Name = "Column", ShortName = "col", SortOrder = 1)] + public KeyToVectorMappingTransformer.Column[] Columns; } /// @@ -151,13 +151,13 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo(item.Name, item.Source ?? item.Name); }; } diff --git a/src/Microsoft.ML.Transforms/LearnerFeatureSelection.cs b/src/Microsoft.ML.Transforms/LearnerFeatureSelection.cs index 2fc4fce5fb..405bd1155d 100644 --- a/src/Microsoft.ML.Transforms/LearnerFeatureSelection.cs +++ b/src/Microsoft.ML.Transforms/LearnerFeatureSelection.cs @@ -59,8 +59,9 @@ public sealed class Arguments [Argument(ArgumentType.AtMostOnce, HelpText = "Name column name", ShortName = "name", Purpose = SpecialPurpose.ColumnName)] public string NameColumn = DefaultColumnNames.Name; - [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'")] - public KeyValuePair[] CustomColumn; + [Argument(ArgumentType.LastOccurenceWins, HelpText = "Columns with custom kinds declared through key assignments, for example, col[Kind]=Name to assign column named 'Name' kind 'Kind'", + Name = "CustomColumn")] + public KeyValuePair[] CustomColumns; [Argument(ArgumentType.LastOccurenceWins, HelpText = "Normalize option for the feature column", ShortName = "norm")] public NormalizeOption NormalizeFeatures = NormalizeOption.Auto; @@ -288,7 +289,7 @@ private static void TrainCore(IHost host, IDataView input, Arguments args, ref V ch.Trace("Binding columns"); - var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, args.CustomColumn); + var customCols = TrainUtils.CheckAndGenerateCustomColumns(ch, args.CustomColumns); var data = new RoleMappedData(view, label, feature, group, weight, name, customCols); var predictor = TrainUtils.Train(host, ch, data, trainer, null, diff --git a/src/Microsoft.ML.Transforms/LoadTransform.cs b/src/Microsoft.ML.Transforms/LoadTransform.cs index baeb7cb9aa..1b4f811d51 100644 --- a/src/Microsoft.ML.Transforms/LoadTransform.cs +++ b/src/Microsoft.ML.Transforms/LoadTransform.cs @@ -32,8 +32,9 @@ public class Arguments SortOrder = 1, IsInputFileName = true)] public string ModelFile; - [Argument(ArgumentType.Multiple, HelpText = "The tags (comma-separated) to be loaded (or omitted, if " + nameof(Complement) + "+)", SortOrder = 2)] - public string[] Tag; + [Argument(ArgumentType.Multiple, HelpText = "The tags (comma-separated) to be loaded (or omitted, if " + nameof(Complement) + "+)", + Name = "Tag", SortOrder = 2)] + public string[] Tags; [Argument(ArgumentType.AtMostOnce, HelpText = "Whether to load all transforms except those marked by tags", ShortName = "comp", SortOrder = 3)] public bool Complement = false; @@ -54,7 +55,7 @@ public static IDataTransform Create(IHostEnvironment env, IDataView input, strin var args = new Arguments() { ModelFile = modelFile, - Tag = tag, + Tags = tag, Complement = complement }; return Create(env, args, input); @@ -72,11 +73,11 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData IDataView currentView; // If there are no 'tag' parameters, we load everything, regardless of 'comp'. - bool complement = args.Complement || Utils.Size(args.Tag) == 0; + bool complement = args.Complement || Utils.Size(args.Tags) == 0; var allTags = new HashSet(); - for (int i = 0; i < Utils.Size(args.Tag); i++) + for (int i = 0; i < Utils.Size(args.Tags); i++) { - var curList = args.Tag[i]; + var curList = args.Tags[i]; if (string.IsNullOrWhiteSpace(curList)) continue; @@ -114,7 +115,7 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData ? "transforms that don't have tags from the list: '{0}'" : "transforms that have tags from the list: '{0}'", string.Join(",", allTags)); - throw h.ExceptUserArg(nameof(args.Tag), "No transforms were found that match the search criteria ({0})", criteria); + throw h.ExceptUserArg(nameof(args.Tags), "No transforms were found that match the search criteria ({0})", criteria); } } diff --git a/src/Microsoft.ML.Transforms/MissingValueDroppingTransformer.cs b/src/Microsoft.ML.Transforms/MissingValueDroppingTransformer.cs index 1ce692a343..72e40c934f 100644 --- a/src/Microsoft.ML.Transforms/MissingValueDroppingTransformer.cs +++ b/src/Microsoft.ML.Transforms/MissingValueDroppingTransformer.cs @@ -36,8 +36,8 @@ public sealed class MissingValueDroppingTransformer : OneToOneTransformerBase { public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to drop the NAs for", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to drop the NAs for", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } public sealed class Column : OneToOneColumn @@ -88,7 +88,7 @@ public MissingValueDroppingTransformer(IHostEnvironment env, params (string outp } internal MissingValueDroppingTransformer(IHostEnvironment env, Arguments args) - : base(Contracts.CheckRef(env, nameof(env)).Register(nameof(MissingValueDroppingTransformer)), GetColumnPairs(args.Column)) + : base(Contracts.CheckRef(env, nameof(env)).Register(nameof(MissingValueDroppingTransformer)), GetColumnPairs(args.Columns)) { } diff --git a/src/Microsoft.ML.Transforms/MissingValueHandlingTransformer.cs b/src/Microsoft.ML.Transforms/MissingValueHandlingTransformer.cs index d63c9792b2..06b37861ec 100644 --- a/src/Microsoft.ML.Transforms/MissingValueHandlingTransformer.cs +++ b/src/Microsoft.ML.Transforms/MissingValueHandlingTransformer.cs @@ -58,8 +58,8 @@ public enum ReplacementKind : byte public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:rep:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:rep:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The replacement method to utilize", ShortName = "kind", SortOrder = 2)] public ReplacementKind ReplaceWith = ReplacementKind.DefaultValue; @@ -121,7 +121,7 @@ public static IDataView Create(IHostEnvironment env, IDataView input, string out { var args = new Arguments() { - Column = new[] + Columns = new[] { new Column() { Name = outputColumnName, Source = inputColumnName ?? outputColumnName } }, @@ -137,18 +137,18 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat var h = env.Register("Categorical"); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); var replaceCols = new List(); var naIndicatorCols = new List(); var naConvCols = new List(); var concatCols = new List(); var dropCols = new List(); - var tmpIsMissingColNames = input.Schema.GetTempColumnNames(args.Column.Length, "IsMissing"); - var tmpReplaceColNames = input.Schema.GetTempColumnNames(args.Column.Length, "Replace"); - for (int i = 0; i < args.Column.Length; i++) + var tmpIsMissingColNames = input.Schema.GetTempColumnNames(args.Columns.Length, "IsMissing"); + var tmpReplaceColNames = input.Schema.GetTempColumnNames(args.Columns.Length, "Replace"); + for (int i = 0; i < args.Columns.Length; i++) { - var column = args.Column[i]; + var column = args.Columns[i]; var addInd = column.ConcatIndicator ?? args.Concat; if (!addInd) @@ -223,7 +223,7 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat // Create the indicator columns. if (naIndicatorCols.Count > 0) - output = MissingValueIndicatorTransformer.Create(h, new MissingValueIndicatorTransformer.Arguments() { Column = naIndicatorCols.ToArray() }, input); + output = MissingValueIndicatorTransformer.Create(h, new MissingValueIndicatorTransformer.Arguments() { Columns = naIndicatorCols.ToArray() }, input); // Convert the indicator columns to the correct type so that they can be concatenated to the NAReplace outputs. if (naConvCols.Count > 0) @@ -237,7 +237,7 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat // Concat the NAReplaceTransform output and the NAIndicatorTransform output. if (naIndicatorCols.Count > 0) - output = ColumnConcatenatingTransformer.Create(h, new ColumnConcatenatingTransformer.TaggedArguments() { Column = concatCols.ToArray() }, output); + output = ColumnConcatenatingTransformer.Create(h, new ColumnConcatenatingTransformer.TaggedArguments() { Columns = concatCols.ToArray() }, output); // Finally, drop the temporary indicator columns. if (dropCols.Count > 0) diff --git a/src/Microsoft.ML.Transforms/MissingValueIndicatorTransform.cs b/src/Microsoft.ML.Transforms/MissingValueIndicatorTransform.cs index f4c108666b..4cfbddf91d 100644 --- a/src/Microsoft.ML.Transforms/MissingValueIndicatorTransform.cs +++ b/src/Microsoft.ML.Transforms/MissingValueIndicatorTransform.cs @@ -44,8 +44,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } public const string LoaderSignature = "MissingIndicatorFunction"; @@ -75,11 +75,11 @@ private static VersionInfo GetVersionInfo() /// Public constructor corresponding to SignatureDataTransform. /// public MissingValueIndicatorTransform(IHostEnvironment env, Arguments args, IDataView input) - : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Column, + : base(env, RegistrationName, Contracts.CheckRef(args, nameof(args)).Columns, input, TestIsFloatItem) { Host.AssertNonEmpty(Infos); - Host.Assert(Infos.Length == Utils.Size(args.Column)); + Host.Assert(Infos.Length == Utils.Size(args.Columns)); _types = GetTypesAndMetadata(); } diff --git a/src/Microsoft.ML.Transforms/MissingValueIndicatorTransformer.cs b/src/Microsoft.ML.Transforms/MissingValueIndicatorTransformer.cs index 10386ea02e..5801eda65e 100644 --- a/src/Microsoft.ML.Transforms/MissingValueIndicatorTransformer.cs +++ b/src/Microsoft.ML.Transforms/MissingValueIndicatorTransformer.cs @@ -54,8 +54,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal const string LoadName = "NaIndicatorTransform"; @@ -91,7 +91,7 @@ public MissingValueIndicatorTransformer(IHostEnvironment env, params (string out } internal MissingValueIndicatorTransformer(IHostEnvironment env, Arguments args) - : base(Contracts.CheckRef(env, nameof(env)).Register(nameof(MissingValueIndicatorTransformer)), GetColumnPairs(args.Column)) + : base(Contracts.CheckRef(env, nameof(env)).Register(nameof(MissingValueIndicatorTransformer)), GetColumnPairs(args.Columns)) { } diff --git a/src/Microsoft.ML.Transforms/MissingValueReplacing.cs b/src/Microsoft.ML.Transforms/MissingValueReplacing.cs index 675c740b5a..734535e9cc 100644 --- a/src/Microsoft.ML.Transforms/MissingValueReplacing.cs +++ b/src/Microsoft.ML.Transforms/MissingValueReplacing.cs @@ -116,8 +116,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:rep:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:rep:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The replacement method to utilize", ShortName = "kind")] public ReplacementKind ReplacementKind = (ReplacementKind)MissingValueReplacingEstimator.Defaults.ReplacementMode; @@ -472,11 +472,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var kind = item.Kind ?? args.ReplacementKind; if (!Enum.IsDefined(typeof(ReplacementKind), kind)) throw env.ExceptUserArg(nameof(args.ReplacementKind), "Undefined sorting criteria '{0}' detected for column '{1}'", kind, item.Name); diff --git a/src/Microsoft.ML.Transforms/MutualInformationFeatureSelection.cs b/src/Microsoft.ML.Transforms/MutualInformationFeatureSelection.cs index bc4a3820ef..95c03f3cea 100644 --- a/src/Microsoft.ML.Transforms/MutualInformationFeatureSelection.cs +++ b/src/Microsoft.ML.Transforms/MutualInformationFeatureSelection.cs @@ -40,9 +40,8 @@ public static class Defaults public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to use for feature selection", ShortName = "col", - SortOrder = 1)] - public string[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to use for feature selection", Name = "Column", ShortName = "col", SortOrder = 1)] + public string[] Columns; [Argument(ArgumentType.LastOccurenceWins, HelpText = "Column to use for labels", ShortName = "lab", SortOrder = 4, Purpose = SpecialPurpose.ColumnName)] @@ -193,12 +192,12 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat var host = env.Register(RegistrationName); host.CheckValue(args, nameof(args)); host.CheckValue(input, nameof(input)); - host.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); host.CheckUserArg(args.SlotsInOutput > 0, nameof(args.SlotsInOutput)); host.CheckNonWhiteSpace(args.LabelColumn, nameof(args.LabelColumn)); host.Check(args.NumBins > 1, "numBins must be greater than 1."); - (string outputColumnName, string inputColumnName)[] cols = args.Column.Select(col => (col, col)).ToArray(); + (string outputColumnName, string inputColumnName)[] cols = args.Columns.Select(col => (col, col)).ToArray(); return new MutualInformationFeatureSelectingEstimator(env, args.LabelColumn, args.SlotsInOutput, args.NumBins, cols).Fit(input).Transform(input) as IDataTransform; } @@ -388,20 +387,20 @@ public float[][] GetScores(IDataView input, string labelColumnName, string[] col var colName = columns[i]; if (!schema.TryGetColumnIndex(colName, out int colSrc)) { - throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Column), + throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Columns), "Source column '{0}' not found", colName); } var colType = schema[colSrc].Type; if (colType is VectorType vectorType && !vectorType.IsKnownSize) { - throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Column), + throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Columns), "Variable length column '{0}' is not allowed", colName); } if (!IsValidColumnType(colType.GetItemType())) { - throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Column), + throw _host.ExceptUserArg(nameof(MutualInformationFeatureSelectingEstimator.Arguments.Columns), "Column '{0}' of type '{1}' does not have compatible type.", colName, colType); } diff --git a/src/Microsoft.ML.Transforms/OneHotEncoding.cs b/src/Microsoft.ML.Transforms/OneHotEncoding.cs index f6b4ac3a64..5771589375 100644 --- a/src/Microsoft.ML.Transforms/OneHotEncoding.cs +++ b/src/Microsoft.ML.Transforms/OneHotEncoding.cs @@ -99,8 +99,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : ValueToKeyMappingTransformer.ArgumentsBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Output kind: Bag (multi-set vector), Ind (indicator vector), or Key (index)", ShortName = "kind", SortOrder = 102)] @@ -125,10 +125,10 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat var h = env.Register("Categorical"); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); var columns = new List(); - foreach (var column in args.Column) + foreach (var column in args.Columns) { var col = new OneHotEncodingEstimator.ColumnInfo( column.Name, @@ -136,8 +136,8 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat column.OutputKind ?? args.OutputKind, column.MaxNumTerms ?? args.MaxNumTerms, column.Sort ?? args.Sort, - column.Term ?? args.Term); - col.SetTerms(column.Terms ?? args.Terms); + column.Terms ?? args.Terms); + col.SetTerms(column.Term ?? args.Term); columns.Add(col); } IDataView keyData = null; diff --git a/src/Microsoft.ML.Transforms/OneHotHashEncoding.cs b/src/Microsoft.ML.Transforms/OneHotHashEncoding.cs index 25bda1d07b..c8ebd854d4 100644 --- a/src/Microsoft.ML.Transforms/OneHotHashEncoding.cs +++ b/src/Microsoft.ML.Transforms/OneHotHashEncoding.cs @@ -98,8 +98,8 @@ private static class Defaults /// public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:hashBits:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:hashBits:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Number of bits to hash into. Must be between 1 and 30, inclusive.", ShortName = "bits", SortOrder = 2)] @@ -156,10 +156,10 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat var h = env.Register("Categorical"); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); var columns = new List(); - foreach (var column in args.Column) + foreach (var column in args.Columns) { var col = new OneHotHashEncodingEstimator.ColumnInfo( column.Name, diff --git a/src/Microsoft.ML.Transforms/OptionalColumnTransform.cs b/src/Microsoft.ML.Transforms/OptionalColumnTransform.cs index 3d537bf006..3927ae6daf 100644 --- a/src/Microsoft.ML.Transforms/OptionalColumnTransform.cs +++ b/src/Microsoft.ML.Transforms/OptionalColumnTransform.cs @@ -34,8 +34,8 @@ internal sealed class OptionalColumnTransform : RowToRowMapperTransformBase { public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s)", ShortName = "col", SortOrder = 1)] - public string[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s)", Name = "Column", ShortName = "col", SortOrder = 1)] + public string[] Columns; } private sealed class Bindings : ColumnBindingsBase @@ -70,15 +70,15 @@ private Bindings(OptionalColumnTransform parent, ColumnType[] columnTypes, int[] public static Bindings Create(Arguments args, Schema input, OptionalColumnTransform parent) { - var names = new string[args.Column.Length]; - var columnTypes = new ColumnType[args.Column.Length]; - var srcCols = new int[args.Column.Length]; - for (int i = 0; i < args.Column.Length; i++) + var names = new string[args.Columns.Length]; + var columnTypes = new ColumnType[args.Columns.Length]; + var srcCols = new int[args.Columns.Length]; + for (int i = 0; i < args.Columns.Length; i++) { - names[i] = args.Column[i]; + names[i] = args.Columns[i]; int col; bool success = input.TryGetColumnIndex(names[i], out col); - Contracts.CheckUserArg(success, nameof(args.Column)); + Contracts.CheckUserArg(success, nameof(args.Columns)); columnTypes[i] = input[col].Type; srcCols[i] = col; } @@ -244,7 +244,7 @@ private static VersionInfo GetVersionInfo() /// Input . This is the output from previous transform or loader. /// Columns to transform. public OptionalColumnTransform(IHostEnvironment env, IDataView input, params string[] columns) - : this(env, new Arguments() { Column = columns }, input) + : this(env, new Arguments() { Columns = columns }, input) { } @@ -255,7 +255,7 @@ public OptionalColumnTransform(IHostEnvironment env, Arguments args, IDataView i : base(env, RegistrationName, input) { Host.CheckValue(args, nameof(args)); - Host.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column)); + Host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns)); _bindings = Bindings.Create(args, Source.Schema, this); } diff --git a/src/Microsoft.ML.Transforms/RandomFourierFeaturizing.cs b/src/Microsoft.ML.Transforms/RandomFourierFeaturizing.cs index f9149f09f7..6ba025abb0 100644 --- a/src/Microsoft.ML.Transforms/RandomFourierFeaturizing.cs +++ b/src/Microsoft.ML.Transforms/RandomFourierFeaturizing.cs @@ -35,8 +35,8 @@ public sealed class RandomFourierFeaturizingTransformer : OneToOneTransformerBas { public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The number of random Fourier features to create", ShortName = "dim")] public int NewDim = RandomFourierFeaturizingEstimator.Defaults.NewDim; @@ -454,14 +454,14 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo( item.Name, item.NewDim ?? args.NewDim, diff --git a/src/Microsoft.ML.Transforms/Text/LdaTransform.cs b/src/Microsoft.ML.Transforms/Text/LdaTransform.cs index 8d70d1b252..e9f8e5a7a9 100644 --- a/src/Microsoft.ML.Transforms/Text/LdaTransform.cs +++ b/src/Microsoft.ML.Transforms/Text/LdaTransform.cs @@ -53,8 +53,8 @@ public sealed class LatentDirichletAllocationTransformer : OneToOneTransformerBa { public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:srcs)", ShortName = "col", SortOrder = 49)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:srcs)", Name = "Column", ShortName = "col", SortOrder = 49)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "The number of topics", SortOrder = 50)] [TGUI(SuggestedSweeps = "20,40,100,200")] @@ -874,9 +874,9 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData Contracts.CheckValue(env, nameof(env)); env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var cols = args.Column.Select(colPair => new ColumnInfo(colPair, args)).ToArray(); + var cols = args.Columns.Select(colPair => new ColumnInfo(colPair, args)).ToArray(); return TrainLdaTransformer(env, input, cols).MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Transforms/Text/NgramTransform.cs b/src/Microsoft.ML.Transforms/Text/NgramTransform.cs index c267a224c6..3e3371ef44 100644 --- a/src/Microsoft.ML.Transforms/Text/NgramTransform.cs +++ b/src/Microsoft.ML.Transforms/Text/NgramTransform.cs @@ -79,8 +79,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Maximum ngram length", ShortName = "ngram")] public int NgramLength = NgramExtractingEstimator.Defaults.NgramLength; @@ -488,14 +488,14 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; using (var ch = env.Start("ValidateArgs")) { for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var maxNumTerms = Utils.Size(item.MaxNumTerms) > 0 ? item.MaxNumTerms : args.MaxNumTerms; cols[i] = new ColumnInfo( item.Name, diff --git a/src/Microsoft.ML.Transforms/Text/StopWordsRemovingTransformer.cs b/src/Microsoft.ML.Transforms/Text/StopWordsRemovingTransformer.cs index 0d9fdc2405..9b6ae91cca 100644 --- a/src/Microsoft.ML.Transforms/Text/StopWordsRemovingTransformer.cs +++ b/src/Microsoft.ML.Transforms/Text/StopWordsRemovingTransformer.cs @@ -101,8 +101,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Optional column to use for languages. This overrides language value.", @@ -289,11 +289,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo( item.Name, item.Source ?? item.Name, @@ -626,11 +626,11 @@ internal bool TryUnparse(StringBuilder sb) public abstract class ArgumentsBase { - [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of stopwords", Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] - public string Stopwords; + [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of stopwords", Name = "Stopwords", Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] + public string Stopword; - [Argument(ArgumentType.AtMostOnce, HelpText = "List of stopwords", Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] - public string[] Stopword; + [Argument(ArgumentType.AtMostOnce, HelpText = "List of stopwords", Name = "Stopword", Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] + public string[] Stopwords; [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "Data file containing the stopwords", ShortName = "data", SortOrder = 2, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] public string DataFile; @@ -644,8 +644,8 @@ public abstract class ArgumentsBase public sealed class Arguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } [TlcModule.Component(Name = "Custom", FriendlyName = "Custom Stopwords Remover", Alias = "CustomStopWordsRemover,CustomStopWords", @@ -655,9 +655,9 @@ public sealed class LoaderArguments : ArgumentsBase, IStopWordsRemoverFactory public IDataTransform CreateComponent(IHostEnvironment env, IDataView input, OneToOneColumn[] column) { if (Utils.Size(Stopword) > 0) - return new CustomStopWordsRemovingTransformer(env, Stopword, column.Select(x => (x.Name, x.Source)).ToArray()).Transform(input) as IDataTransform; + return new CustomStopWordsRemovingTransformer(env, Stopwords, column.Select(x => (x.Name, x.Source)).ToArray()).Transform(input) as IDataTransform; else - return new CustomStopWordsRemovingTransformer(env, Stopwords, DataFile, StopwordsColumn, Loader, column.Select(x => (x.Name, x.Source)).ToArray()).Transform(input) as IDataTransform; + return new CustomStopWordsRemovingTransformer(env, Stopword, DataFile, StopwordsColumn, Loader, column.Select(x => (x.Name, x.Source)).ToArray()).Transform(input) as IDataTransform; } } @@ -772,7 +772,7 @@ private void LoadStopWords(IChannel ch, ReadOnlyMemory stopwords, string d warnEmpty = false; } } - ch.CheckUserArg(stopWordsMap.Count > 0, nameof(Arguments.Stopwords), "stopwords is empty"); + ch.CheckUserArg(stopWordsMap.Count > 0, nameof(Arguments.Stopword), "stopwords is empty"); } else { @@ -944,18 +944,18 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new (string outputColumnName, string inputColumnName)[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new (string outputColumnName, string inputColumnName)[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = (item.Name, item.Source ?? item.Name); } CustomStopWordsRemovingTransformer transfrom = null; - if (Utils.Size(args.Stopword) > 0) - transfrom = new CustomStopWordsRemovingTransformer(env, args.Stopword, cols); + if (Utils.Size(args.Stopwords) > 0) + transfrom = new CustomStopWordsRemovingTransformer(env, args.Stopwords, cols); else - transfrom = new CustomStopWordsRemovingTransformer(env, args.Stopwords, args.DataFile, args.StopwordsColumn, args.Loader, cols); + transfrom = new CustomStopWordsRemovingTransformer(env, args.Stopword, args.DataFile, args.StopwordsColumn, args.Loader, cols); return transfrom.MakeDataTransform(input); } diff --git a/src/Microsoft.ML.Transforms/Text/TextFeaturizingEstimator.cs b/src/Microsoft.ML.Transforms/Text/TextFeaturizingEstimator.cs index 19453c203d..f936ab9ad1 100644 --- a/src/Microsoft.ML.Transforms/Text/TextFeaturizingEstimator.cs +++ b/src/Microsoft.ML.Transforms/Text/TextFeaturizingEstimator.cs @@ -81,8 +81,8 @@ internal bool TryUnparse(StringBuilder sb) /// public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Required, HelpText = "New column definition (optional form: name:srcs).", ShortName = "col", SortOrder = 1)] - public Column Column; + [Argument(ArgumentType.Required, HelpText = "New column definition (optional form: name:srcs).", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Dataset language or 'AutoDetect' to detect language per row.", ShortName = "lang", SortOrder = 3)] public Language Language = DefaultLanguage; @@ -516,7 +516,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV s.UseCharExtractor = args.CharFeatureExtractor != null; }; - var estimator = new TextFeaturizingEstimator(env, args.Column.Name, args.Column.Source ?? new[] { args.Column.Name }, settings); + var estimator = new TextFeaturizingEstimator(env, args.Columns.Name, args.Columns.Source ?? new[] { args.Columns.Name }, settings); estimator._dictionary = args.Dictionary; estimator._wordFeatureExtractor = args.WordFeatureExtractor; estimator._charFeatureExtractor = args.CharFeatureExtractor; diff --git a/src/Microsoft.ML.Transforms/Text/TextNormalizing.cs b/src/Microsoft.ML.Transforms/Text/TextNormalizing.cs index 0e7a2671c4..4e1df85671 100644 --- a/src/Microsoft.ML.Transforms/Text/TextNormalizing.cs +++ b/src/Microsoft.ML.Transforms/Text/TextNormalizing.cs @@ -55,8 +55,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Casing text using the rules of the invariant culture.", ShortName = "case", SortOrder = 1)] public TextNormalizingEstimator.CaseNormalizationMode TextCase = TextNormalizingEstimator.Defaults.TextCase; @@ -173,11 +173,11 @@ private static IDataTransform Create(IHostEnvironment env, Arguments args, IData env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new (string outputColumnName, string inputColumnName)[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new (string outputColumnName, string inputColumnName)[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = (item.Name, item.Source ?? item.Name); } return new TextNormalizingTransformer(env, args.TextCase, args.KeepDiacritics, args.KeepPunctuations, args.KeepNumbers, cols).MakeDataTransform(input); diff --git a/src/Microsoft.ML.Transforms/Text/TokenizingByCharacters.cs b/src/Microsoft.ML.Transforms/Text/TokenizingByCharacters.cs index 86d7f4273c..9903c6e07c 100644 --- a/src/Microsoft.ML.Transforms/Text/TokenizingByCharacters.cs +++ b/src/Microsoft.ML.Transforms/Text/TokenizingByCharacters.cs @@ -55,8 +55,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; [Argument(ArgumentType.Multiple, HelpText = "Whether to mark the beginning/end of each row/slot with start of text character (0x02)/end of text character (0x03)", ShortName = "mark", SortOrder = 2)] @@ -167,11 +167,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new (string outputColumnName, string inputColumnName)[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new (string outputColumnName, string inputColumnName)[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = (item.Name, item.Source ?? item.Name); } return new TokenizingByCharactersTransformer(env, args.UseMarkerChars, cols).MakeDataTransform(input); diff --git a/src/Microsoft.ML.Transforms/Text/WordBagTransform.cs b/src/Microsoft.ML.Transforms/Text/WordBagTransform.cs index b2ee17caf4..a3924dbf58 100644 --- a/src/Microsoft.ML.Transforms/Text/WordBagTransform.cs +++ b/src/Microsoft.ML.Transforms/Text/WordBagTransform.cs @@ -96,8 +96,8 @@ public sealed class TokenizeColumn : OneToOneColumn { } public sealed class Arguments : NgramExtractorTransform.ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } private const string RegistrationName = "WordBagTransform"; @@ -111,7 +111,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV var h = env.Register(RegistrationName); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column), "Columns must be specified"); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns), "Columns must be specified"); // Compose the WordBagTransform from a tokenize transform, // followed by a NgramExtractionTransform. @@ -124,7 +124,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV // REVIEW: In order to make it possible to output separate bags for different columns // using the same dictionary, we need to find a way to make ConcatTransform remember the boundaries. - var tokenizeColumns = new WordTokenizingTransformer.ColumnInfo[args.Column.Length]; + var tokenizeColumns = new WordTokenizingTransformer.ColumnInfo[args.Columns.Length]; var extractorArgs = new NgramExtractorTransform.Arguments() @@ -134,19 +134,19 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV SkipLength = args.SkipLength, AllLengths = args.AllLengths, Weighting = args.Weighting, - Column = new NgramExtractorTransform.Column[args.Column.Length] + Columns = new NgramExtractorTransform.Column[args.Columns.Length] }; - for (int iinfo = 0; iinfo < args.Column.Length; iinfo++) + for (int iinfo = 0; iinfo < args.Columns.Length; iinfo++) { - var column = args.Column[iinfo]; + var column = args.Columns[iinfo]; h.CheckUserArg(!string.IsNullOrWhiteSpace(column.Name), nameof(column.Name)); h.CheckUserArg(Utils.Size(column.Source) > 0, nameof(column.Source)); h.CheckUserArg(column.Source.All(src => !string.IsNullOrWhiteSpace(src)), nameof(column.Source)); tokenizeColumns[iinfo] = new WordTokenizingTransformer.ColumnInfo(column.Name, column.Source.Length > 1 ? column.Name : column.Source[0]); - extractorArgs.Column[iinfo] = + extractorArgs.Columns[iinfo] = new NgramExtractorTransform.Column() { Name = column.Name, @@ -160,7 +160,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV } IDataView view = input; - view = NgramExtractionUtils.ApplyConcatOnSources(h, args.Column, view); + view = NgramExtractionUtils.ApplyConcatOnSources(h, args.Columns, view); view = new WordTokenizingEstimator(env, tokenizeColumns).Fit(view).Transform(view); return NgramExtractorTransform.Create(h, extractorArgs, view); } @@ -256,8 +256,8 @@ public INgramExtractorFactory CreateComponent(IHostEnvironment env, TermLoaderAr public sealed class Arguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal const string Summary = "A transform that turns a collection of tokenized text ReadOnlyMemory, or vectors of keys into numerical " + @@ -272,15 +272,15 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV var h = env.Register(LoaderSignature); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column), "Columns must be specified"); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns), "Columns must be specified"); IDataView view = input; var termCols = new List(); - var isTermCol = new bool[args.Column.Length]; + var isTermCol = new bool[args.Columns.Length]; - for (int i = 0; i < args.Column.Length; i++) + for (int i = 0; i < args.Columns.Length; i++) { - var col = args.Column[i]; + var col = args.Columns[i]; h.CheckNonWhiteSpace(col.Name, nameof(col.Name)); h.CheckNonWhiteSpace(col.Source, nameof(col.Source)); @@ -308,13 +308,13 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV new ValueToKeyMappingTransformer.Arguments() { MaxNumTerms = int.MaxValue, - Terms = termLoaderArgs.Terms, Term = termLoaderArgs.Term, + Terms = termLoaderArgs.Terms, DataFile = termLoaderArgs.DataFile, Loader = termLoaderArgs.Loader, TermsColumn = termLoaderArgs.TermsColumn, Sort = termLoaderArgs.Sort, - Column = new ValueToKeyMappingTransformer.Column[termCols.Count] + Columns = new ValueToKeyMappingTransformer.Column[termCols.Count] }; if (termLoaderArgs.DropUnknowns) missingDropColumns = new string[termCols.Count]; @@ -325,14 +325,14 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV new ValueToKeyMappingTransformer.Arguments() { MaxNumTerms = Utils.Size(args.MaxNumTerms) > 0 ? args.MaxNumTerms[0] : NgramExtractingEstimator.Defaults.MaxNumTerms, - Column = new ValueToKeyMappingTransformer.Column[termCols.Count] + Columns = new ValueToKeyMappingTransformer.Column[termCols.Count] }; } for (int iinfo = 0; iinfo < termCols.Count; iinfo++) { var column = termCols[iinfo]; - termArgs.Column[iinfo] = + termArgs.Columns[iinfo] = new ValueToKeyMappingTransformer.Column() { Name = column.Name, @@ -349,10 +349,10 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV view = new MissingValueDroppingTransformer(h, missingDropColumns.Select(x => (x, x)).ToArray()).Transform(view); } - var ngramColumns = new NgramExtractingTransformer.ColumnInfo[args.Column.Length]; - for (int iinfo = 0; iinfo < args.Column.Length; iinfo++) + var ngramColumns = new NgramExtractingTransformer.ColumnInfo[args.Columns.Length]; + for (int iinfo = 0; iinfo < args.Columns.Length; iinfo++) { - var column = args.Column[iinfo]; + var column = args.Columns[iinfo]; ngramColumns[iinfo] = new NgramExtractingTransformer.ColumnInfo(column.Name, column.NgramLength ?? args.NgramLength, column.SkipLength ?? args.SkipLength, @@ -374,7 +374,7 @@ public static IDataTransform Create(IHostEnvironment env, NgramExtractorArgument h.CheckValue(extractorArgs, nameof(extractorArgs)); h.CheckValue(input, nameof(input)); h.CheckUserArg(extractorArgs.SkipLength < extractorArgs.NgramLength, nameof(extractorArgs.SkipLength), "Should be less than " + nameof(extractorArgs.NgramLength)); - h.CheckUserArg(Utils.Size(cols) > 0, nameof(Arguments.Column), "Must be specified"); + h.CheckUserArg(Utils.Size(cols) > 0, nameof(Arguments.Columns), "Must be specified"); h.CheckValueOrNull(termLoaderArgs); var extractorCols = new Column[cols.Length]; @@ -386,7 +386,7 @@ public static IDataTransform Create(IHostEnvironment env, NgramExtractorArgument var args = new Arguments { - Column = extractorCols, + Columns = extractorCols, NgramLength = extractorArgs.NgramLength, SkipLength = extractorArgs.SkipLength, AllLengths = extractorArgs.AllLengths, @@ -415,11 +415,11 @@ public static INgramExtractorFactory Create(IHostEnvironment env, NgramExtractor /// public sealed class TermLoaderArguments { - [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", SortOrder = 1, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] - public string Terms; + [Argument(ArgumentType.AtMostOnce, HelpText = "Comma separated list of terms", Name = "Terms", SortOrder = 1, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] + public string Term; - [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", SortOrder = 1, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] - public string[] Term; + [Argument(ArgumentType.AtMostOnce, HelpText = "List of terms", Name = "Term", SortOrder = 1, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)] + public string[] Terms; [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "Data file containing the terms", ShortName = "data", SortOrder = 2, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly)] public string DataFile; @@ -517,7 +517,7 @@ public static IDataView ApplyConcatOnSources(IHostEnvironment env, ManyToOneColu var concatColumns = new List(); foreach (var col in columns) { - env.CheckUserArg(col != null, nameof(WordBagBuildingTransformer.Arguments.Column)); + env.CheckUserArg(col != null, nameof(WordBagBuildingTransformer.Arguments.Columns)); env.CheckUserArg(!string.IsNullOrWhiteSpace(col.Name), nameof(col.Name)); env.CheckUserArg(Utils.Size(col.Source) > 0, nameof(col.Source)); env.CheckUserArg(col.Source.All(src => !string.IsNullOrWhiteSpace(src)), nameof(col.Source)); @@ -545,7 +545,7 @@ public static string[][] GenerateUniqueSourceNames(IHostEnvironment env, ManyToO for (int iinfo = 0; iinfo < columns.Length; iinfo++) { var col = columns[iinfo]; - env.CheckUserArg(col != null, nameof(WordHashBagProducingTransformer.Arguments.Column)); + env.CheckUserArg(col != null, nameof(WordHashBagProducingTransformer.Arguments.Columns)); env.CheckUserArg(!string.IsNullOrWhiteSpace(col.Name), nameof(col.Name)); env.CheckUserArg(Utils.Size(col.Source) > 0 && col.Source.All(src => !string.IsNullOrWhiteSpace(src)), nameof(col.Source)); diff --git a/src/Microsoft.ML.Transforms/Text/WordEmbeddingsExtractor.cs b/src/Microsoft.ML.Transforms/Text/WordEmbeddingsExtractor.cs index 79084dd487..07b2fb23f4 100644 --- a/src/Microsoft.ML.Transforms/Text/WordEmbeddingsExtractor.cs +++ b/src/Microsoft.ML.Transforms/Text/WordEmbeddingsExtractor.cs @@ -59,8 +59,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", ShortName = "col", SortOrder = 0)] - public Column[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:src)", Name = "Column", ShortName = "col", SortOrder = 0)] + public Column[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Pre-trained model used to create the vocabulary", ShortName = "model", SortOrder = 1)] public PretrainedModelKind? ModelKind = PretrainedModelKind.Sswe; @@ -245,12 +245,12 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat args.ModelKind = PretrainedModelKind.Sswe; env.CheckUserArg(!args.ModelKind.HasValue || Enum.IsDefined(typeof(PretrainedModelKind), args.ModelKind), nameof(args.ModelKind)); - env.CheckValue(args.Column, nameof(args.Column)); + env.CheckValue(args.Columns, nameof(args.Columns)); - var cols = new ColumnInfo[args.Column.Length]; + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; cols[i] = new ColumnInfo( item.Name, item.Source ?? item.Name); diff --git a/src/Microsoft.ML.Transforms/Text/WordHashBagProducingTransform.cs b/src/Microsoft.ML.Transforms/Text/WordHashBagProducingTransform.cs index e16576e3a3..27e627b900 100644 --- a/src/Microsoft.ML.Transforms/Text/WordHashBagProducingTransform.cs +++ b/src/Microsoft.ML.Transforms/Text/WordHashBagProducingTransform.cs @@ -76,8 +76,8 @@ internal bool TryUnparse(StringBuilder sb) public sealed class Arguments : NgramHashExtractingTransformer.ArgumentsBase { [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "New column definition(s) (optional form: name:hashBits:srcs)", - ShortName = "col", SortOrder = 1)] - public Column[] Column; + Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } private const string RegistrationName = "WordHashBagTransform"; @@ -90,7 +90,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV var h = env.Register(RegistrationName); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column), "Columns must be specified"); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns), "Columns must be specified"); // To each input column to the WordHashBagTransform, a tokenize transform is applied, // followed by applying WordHashVectorizeTransform. @@ -100,21 +100,21 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV // The intermediate columns are dropped at the end of using a DropColumnsTransform. IDataView view = input; - var uniqueSourceNames = NgramExtractionUtils.GenerateUniqueSourceNames(h, args.Column, view.Schema); - Contracts.Assert(uniqueSourceNames.Length == args.Column.Length); + var uniqueSourceNames = NgramExtractionUtils.GenerateUniqueSourceNames(h, args.Columns, view.Schema); + Contracts.Assert(uniqueSourceNames.Length == args.Columns.Length); var tokenizeColumns = new List(); - var extractorCols = new NgramHashExtractingTransformer.Column[args.Column.Length]; - var colCount = args.Column.Length; + var extractorCols = new NgramHashExtractingTransformer.Column[args.Columns.Length]; + var colCount = args.Columns.Length; List tmpColNames = new List(); for (int iinfo = 0; iinfo < colCount; iinfo++) { - var column = args.Column[iinfo]; + var column = args.Columns[iinfo]; int srcCount = column.Source.Length; var curTmpNames = new string[srcCount]; - Contracts.Assert(uniqueSourceNames[iinfo].Length == args.Column[iinfo].Source.Length); + Contracts.Assert(uniqueSourceNames[iinfo].Length == args.Columns[iinfo].Source.Length); for (int isrc = 0; isrc < srcCount; isrc++) - tokenizeColumns.Add(new WordTokenizingTransformer.ColumnInfo(curTmpNames[isrc] = uniqueSourceNames[iinfo][isrc], args.Column[iinfo].Source[isrc])); + tokenizeColumns.Add(new WordTokenizingTransformer.ColumnInfo(curTmpNames[isrc] = uniqueSourceNames[iinfo][isrc], args.Columns[iinfo].Source[isrc])); tmpColNames.AddRange(curTmpNames); extractorCols[iinfo] = @@ -128,7 +128,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV SkipLength = column.SkipLength, Ordered = column.Ordered, InvertHash = column.InvertHash, - FriendlyNames = args.Column[iinfo].Source, + FriendlyNames = args.Columns[iinfo].Source, AllLengths = column.AllLengths }; } @@ -144,7 +144,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV SkipLength = args.SkipLength, Ordered = args.Ordered, Seed = args.Seed, - Column = extractorCols.ToArray(), + Columns = extractorCols.ToArray(), InvertHash = args.InvertHash }; @@ -306,8 +306,8 @@ public INgramExtractorFactory CreateComponent(IHostEnvironment env, TermLoaderAr public sealed class Arguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s) (optional form: name:srcs)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } internal const string Summary = "A transform that turns a collection of tokenized text (vector of ReadOnlyMemory) into numerical feature vectors using the hashing trick."; @@ -321,7 +321,7 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV var h = env.Register(LoaderSignature); h.CheckValue(args, nameof(args)); h.CheckValue(input, nameof(input)); - h.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column), "Columns must be specified"); + h.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns), "Columns must be specified"); // To each input column to the NgramHashExtractorArguments, a HashTransform using 31 // bits (to minimize collisions) is applied first, followed by an NgramHashTransform. @@ -331,15 +331,15 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV if (termLoaderArgs != null) termCols = new List(); var hashColumns = new List(); - var ngramHashColumns = new NgramHashingTransformer.ColumnInfo[args.Column.Length]; + var ngramHashColumns = new NgramHashingTransformer.ColumnInfo[args.Columns.Length]; - var colCount = args.Column.Length; + var colCount = args.Columns.Length; // The NGramHashExtractor has a ManyToOne column type. To avoid stepping over the source // column name when a 'name' destination column name was specified, we use temporary column names. string[][] tmpColNames = new string[colCount][]; for (int iinfo = 0; iinfo < colCount; iinfo++) { - var column = args.Column[iinfo]; + var column = args.Columns[iinfo]; h.CheckUserArg(!string.IsNullOrWhiteSpace(column.Name), nameof(column.Name)); h.CheckUserArg(Utils.Size(column.Source) > 0 && column.Source.All(src => !string.IsNullOrWhiteSpace(src)), nameof(column.Source)); @@ -383,13 +383,13 @@ public static IDataTransform Create(IHostEnvironment env, Arguments args, IDataV new ValueToKeyMappingTransformer.Arguments() { MaxNumTerms = int.MaxValue, - Terms = termLoaderArgs.Terms, Term = termLoaderArgs.Term, + Terms = termLoaderArgs.Terms, DataFile = termLoaderArgs.DataFile, Loader = termLoaderArgs.Loader, TermsColumn = termLoaderArgs.TermsColumn, Sort = termLoaderArgs.Sort, - Column = termCols.ToArray() + Columns = termCols.ToArray() }; view = ValueToKeyMappingTransformer.Create(h, termArgs, view); @@ -414,7 +414,7 @@ public static IDataTransform Create(NgramHashExtractorArguments extractorArgs, I h.CheckValue(extractorArgs, nameof(extractorArgs)); h.CheckValue(input, nameof(input)); h.CheckUserArg(extractorArgs.SkipLength < extractorArgs.NgramLength, nameof(extractorArgs.SkipLength), "Should be less than " + nameof(extractorArgs.NgramLength)); - h.CheckUserArg(Utils.Size(cols) > 0, nameof(Arguments.Column), "Must be specified"); + h.CheckUserArg(Utils.Size(cols) > 0, nameof(Arguments.Columns), "Must be specified"); h.AssertValueOrNull(termLoaderArgs); var extractorCols = new Column[cols.Length]; @@ -431,7 +431,7 @@ public static IDataTransform Create(NgramHashExtractorArguments extractorArgs, I var args = new Arguments { - Column = extractorCols, + Columns = extractorCols, NgramLength = extractorArgs.NgramLength, SkipLength = extractorArgs.SkipLength, HashBits = extractorArgs.HashBits, diff --git a/src/Microsoft.ML.Transforms/Text/WordTokenizing.cs b/src/Microsoft.ML.Transforms/Text/WordTokenizing.cs index a6e8155c87..c1c7820afa 100644 --- a/src/Microsoft.ML.Transforms/Text/WordTokenizing.cs +++ b/src/Microsoft.ML.Transforms/Text/WordTokenizing.cs @@ -83,8 +83,8 @@ public abstract class ArgumentsBase : TransformInputBase public sealed class Arguments : ArgumentsBase { - [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", ShortName = "col", SortOrder = 1)] - public Column[] Column; + [Argument(ArgumentType.Multiple, HelpText = "New column definition(s)", Name = "Column", ShortName = "col", SortOrder = 1)] + public Column[] Columns; } public sealed class TokenizeArguments : ArgumentsBase @@ -205,11 +205,11 @@ internal static IDataTransform Create(IHostEnvironment env, Arguments args, IDat env.CheckValue(args, nameof(args)); env.CheckValue(input, nameof(input)); - env.CheckValue(args.Column, nameof(args.Column)); - var cols = new ColumnInfo[args.Column.Length]; + env.CheckValue(args.Columns, nameof(args.Columns)); + var cols = new ColumnInfo[args.Columns.Length]; for (int i = 0; i < cols.Length; i++) { - var item = args.Column[i]; + var item = args.Columns[i]; var separators = args.CharArrayTermSeparators ?? PredictionUtil.SeparatorFromString(item.TermSeparators ?? args.TermSeparators); cols[i] = new ColumnInfo(item.Name, item.Source ?? item.Name, separators); diff --git a/src/Microsoft.ML.Transforms/Text/WrappedTextTransformers.cs b/src/Microsoft.ML.Transforms/Text/WrappedTextTransformers.cs index 191901305d..1bda6b77f7 100644 --- a/src/Microsoft.ML.Transforms/Text/WrappedTextTransformers.cs +++ b/src/Microsoft.ML.Transforms/Text/WrappedTextTransformers.cs @@ -110,7 +110,7 @@ public override TransformWrapper Fit(IDataView input) // Create arguments. var args = new WordBagBuildingTransformer.Arguments { - Column = _columns.Select(x => new WordBagBuildingTransformer.Column { Name = x.outputColumnName, Source = x.sourceColumnsNames }).ToArray(), + Columns = _columns.Select(x => new WordBagBuildingTransformer.Column { Name = x.outputColumnName, Source = x.sourceColumnsNames }).ToArray(), NgramLength = _ngramLength, SkipLength = _skipLength, AllLengths = _allLengths, @@ -247,7 +247,7 @@ public override TransformWrapper Fit(IDataView input) // Create arguments. var args = new WordHashBagProducingTransformer.Arguments { - Column = _columns.Select(x => new WordHashBagProducingTransformer.Column { Name = x.outputColumnName ,Source = x.inputColumnNames}).ToArray(), + Columns = _columns.Select(x => new WordHashBagProducingTransformer.Column { Name = x.outputColumnName ,Source = x.inputColumnNames}).ToArray(), HashBits = _hashBits, NgramLength = _ngramLength, SkipLength = _skipLength, diff --git a/src/Microsoft.ML.Transforms/UngroupTransform.cs b/src/Microsoft.ML.Transforms/UngroupTransform.cs index 4916393f63..d49832c0bb 100644 --- a/src/Microsoft.ML.Transforms/UngroupTransform.cs +++ b/src/Microsoft.ML.Transforms/UngroupTransform.cs @@ -86,8 +86,8 @@ public enum UngroupMode public sealed class Arguments : TransformInputBase { - [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to unroll, or 'pivot'", ShortName = "col")] - public string[] Column; + [Argument(ArgumentType.Multiple | ArgumentType.Required, HelpText = "Columns to unroll, or 'pivot'", Name = "Column", ShortName = "col")] + public string[] Columns; [Argument(ArgumentType.AtMostOnce, HelpText = "Specifies how to unroll multiple pivot columns of different size.")] public UngroupMode Mode = UngroupMode.Inner; @@ -103,7 +103,7 @@ public sealed class Arguments : TransformInputBase /// Specifies how to unroll multiple pivot columns of different size. /// Columns to unroll, or 'pivot' public UngroupTransform(IHostEnvironment env, IDataView input, UngroupMode mode, params string[] columns) - : this(env, new Arguments() { Column = columns, Mode = mode }, input) + : this(env, new Arguments() { Columns = columns, Mode = mode }, input) { } @@ -111,11 +111,11 @@ public UngroupTransform(IHostEnvironment env, Arguments args, IDataView input) : base(env, LoaderSignature, input) { Host.CheckValue(args, nameof(args)); - Host.CheckUserArg(Utils.Size(args.Column) > 0, nameof(args.Column), "There must be at least one pivot column"); - Host.CheckUserArg(args.Column.Distinct().Count() == args.Column.Length, nameof(args.Column), + Host.CheckUserArg(Utils.Size(args.Columns) > 0, nameof(args.Columns), "There must be at least one pivot column"); + Host.CheckUserArg(args.Columns.Distinct().Count() == args.Columns.Length, nameof(args.Columns), "Duplicate pivot columns are not allowed"); - _ungroupBinding = new UngroupBinding(Host, Source.Schema, args.Mode, args.Column); + _ungroupBinding = new UngroupBinding(Host, Source.Schema, args.Mode, args.Columns); } public static UngroupTransform Create(IHostEnvironment env, ModelLoadContext ctx, IDataView input) @@ -330,12 +330,12 @@ private static void Bind(IExceptionContext ectx, Schema inputSchema, { var name = pivotColumns[i]; // REVIEW: replace Check with CheckUser, once existing CheckUser is renamed to CheckUserArg or something. - ectx.CheckUserArg(!string.IsNullOrEmpty(name), nameof(Arguments.Column), "Column name cannot be empty"); + ectx.CheckUserArg(!string.IsNullOrEmpty(name), nameof(Arguments.Columns), "Column name cannot be empty"); int col; if (!inputSchema.TryGetColumnIndex(name, out col)) - throw ectx.ExceptUserArg(nameof(Arguments.Column), "Pivot column '{0}' is not found", name); + throw ectx.ExceptUserArg(nameof(Arguments.Columns), "Pivot column '{0}' is not found", name); if (!(inputSchema[col].Type is VectorType colType)) - throw ectx.ExceptUserArg(nameof(Arguments.Column), + throw ectx.ExceptUserArg(nameof(Arguments.Columns), "Pivot column '{0}' has type '{1}', but must be a vector of primitive types", name, inputSchema[col].Type); infos[i] = new PivotColumnInfo(name, col, colType.Size, colType.ItemType); } diff --git a/test/BaselineOutput/Common/EntryPoints/core_manifest.json b/test/BaselineOutput/Common/EntryPoints/core_manifest.json index 8c804fd785..d44cc0bd46 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_manifest.json +++ b/test/BaselineOutput/Common/EntryPoints/core_manifest.json @@ -97,7 +97,7 @@ "ShortName": null, "Inputs": [ { - "Name": "Model", + "Name": "Models", "Type": { "Kind": "Array", "ItemType": "PredictorModel" @@ -110,7 +110,7 @@ ], "Outputs": [ { - "Name": "OutputModel", + "Name": "OutputModels", "Type": { "Kind": "Array", "ItemType": "PredictorModel" @@ -21932,7 +21932,7 @@ { "Name": "Transforms.ScoreColumnSelector", "Desc": "Selects only the last score columns and the extra columns specified in the arguments.", - "FriendlyName": "Choose Columns By Index", + "FriendlyName": "Choose Columns By Indices", "ShortName": null, "Inputs": [ { diff --git a/test/Microsoft.ML.Benchmarks/RffTransform.cs b/test/Microsoft.ML.Benchmarks/RffTransform.cs index 46aed852e7..b94eb7930e 100644 --- a/test/Microsoft.ML.Benchmarks/RffTransform.cs +++ b/test/Microsoft.ML.Benchmarks/RffTransform.cs @@ -32,7 +32,7 @@ public void CV_Multiclass_Digits_RffTransform_OVAAveragedPerceptron() var mlContext = new MLContext(); var reader = mlContext.Data.CreateTextLoader(new TextLoader.Arguments { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 64), new TextLoader.Column("Features", DataKind.R4, new[] {new TextLoader.Range() {Min = 0, Max = 63}}) diff --git a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs index e225efb2a8..f8a27276a5 100644 --- a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs +++ b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs @@ -80,7 +80,7 @@ public void TrainSentiment() // Pipeline var arguments = new TextLoader.Arguments() { - Column = new TextLoader.Column[] + Columns = new TextLoader.Column[] { new TextLoader.Column() { diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs index aec9b5ddd1..2fe8084d0c 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs @@ -56,7 +56,7 @@ private IDataView GetBreastCancerDataView() { Arguments = { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, @@ -77,7 +77,7 @@ private IDataView GetBreastCancerDataviewWithTextColumns() Arguments = { HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", type: null, 0), new TextLoader.Column("F1", DataKind.Text, 1), @@ -969,7 +969,7 @@ public void EntryPointPipelineEnsembleText() Arguments = { HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.TX, 0), new TextLoader.Column("Text", DataKind.TX, 3) @@ -1009,7 +1009,7 @@ public void EntryPointPipelineEnsembleText() data = WordHashBagProducingTransformer.Create(Env, new WordHashBagProducingTransformer.Arguments() { - Column = + Columns = new[] { new WordHashBagProducingTransformer.Column() { Name = "Features", Source = new[] { "Text" } }, } }, data); @@ -1180,7 +1180,7 @@ public void EntryPointMulticlassPipelineEnsemble() { Arguments = { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 4) }) @@ -1326,7 +1326,7 @@ public void EntryPointPipelineEnsembleGetSummary() InputFile = inputFile, Arguments = { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new[] { new TextLoader.Range(1, 8) }), @@ -2436,7 +2436,7 @@ public void TestInputBuilderBasicArgs() var args = new NormalizeTransform.MinMaxArguments() { - Column = new[] + Columns = new[] { NormalizeTransform.AffineColumn.Parse("A"), new NormalizeTransform.AffineColumn() { Name = "B", Source = "B", FixZero = false }, @@ -3334,7 +3334,7 @@ public void EntryPointLinearPredictorSummary() { Separators = new []{'\t' }, HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", type: null, 0), new TextLoader.Column("Features", DataKind.Num, new [] { new TextLoader.Range(1, 9) }) @@ -3408,7 +3408,7 @@ public void EntryPointPcaPredictorSummary() { Separators = new []{'\t' }, HasHeader = false, - Column = new[] + Columns = new[] { new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 784) }) } @@ -3544,12 +3544,12 @@ public void EntryPointTreeLeafFeaturizer() var cat = Categorical.CatTransformDict(Env, new OneHotEncodingTransformer.Arguments() { Data = dataView, - Column = new[] { new OneHotEncodingTransformer.Column { Name = "Categories", Source = "Categories" } } + Columns = new[] { new OneHotEncodingTransformer.Column { Name = "Categories", Source = "Categories" } } }); var concat = SchemaManipulation.ConcatColumns(Env, new ColumnConcatenatingTransformer.Arguments() { Data = cat.OutputData, - Column = new[] { new ColumnConcatenatingTransformer.Column { Name = "Features", Source = new[] { "Categories", "NumericFeatures" } } } + Columns = new[] { new ColumnConcatenatingTransformer.Column { Name = "Features", Source = new[] { "Categories", "NumericFeatures" } } } }); var fastTree = FastTree.TrainBinary(Env, new FastTreeBinaryClassificationTrainer.Options @@ -3621,7 +3621,7 @@ public void EntryPointWordEmbeddings() Arguments = { Separators = new []{' '}, - Column = new[] + Columns = new[] { new TextLoader.Column("Text", DataKind.Text, new [] { new TextLoader.Range() { Min = 0, VariableEnd=true, ForceVector=true} }) @@ -3632,7 +3632,7 @@ public void EntryPointWordEmbeddings() var embedding = Transforms.Text.TextAnalytics.WordEmbeddings(Env, new WordEmbeddingsExtractingTransformer.Arguments() { Data = dataView, - Column = new[] { new WordEmbeddingsExtractingTransformer.Column { Name = "Features", Source = "Text" } }, + Columns = new[] { new WordEmbeddingsExtractingTransformer.Column { Name = "Features", Source = "Text" } }, ModelKind = WordEmbeddingsExtractingTransformer.PretrainedModelKind.Sswe }); var result = embedding.OutputData; diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestHosts.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestHosts.cs index 1348d39b5b..faa1ba5f26 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestHosts.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestHosts.cs @@ -84,7 +84,7 @@ public void LogEventProcessesMessages() // create a dummy text reader to trigger log messages env.Data.CreateTextLoader( - new TextLoader.Arguments {Column = new[] {new TextLoader.Column("TestColumn", null, 0)}}); + new TextLoader.Arguments {Columns = new[] {new TextLoader.Column("TestColumn", null, 0)}}); Assert.True(messages.Count > 0); } diff --git a/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs b/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs index eab8280104..68786f1eab 100644 --- a/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs +++ b/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs @@ -525,7 +525,7 @@ public void TestGamRegressionIni() new TextLoader.Arguments() { HasHeader = false, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, 1, 9) @@ -564,7 +564,7 @@ public void TestGamBinaryClassificationIni() new TextLoader.Arguments() { HasHeader = false, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.BL, 0), new TextLoader.Column("Features", DataKind.R4, 1, 9) diff --git a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs index 01f2f4766a..95af6fbd73 100644 --- a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs +++ b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs @@ -1378,7 +1378,7 @@ public void TestLdaTransformerEmptyDocumentException() }; var args = new LatentDirichletAllocationTransformer.Arguments() { - Column = new[] { col } + Columns = new[] { col } }; try diff --git a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipeBase.cs b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipeBase.cs index e7b9e49e2a..4d26cd9aba 100644 --- a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipeBase.cs +++ b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipeBase.cs @@ -330,7 +330,7 @@ protected void VerifyArgParsing(IHostEnvironment env, string[] strs) // For the loader and each transform, verify that custom unparsing is correct. VerifyCustArgs(env, args.Loader); - foreach (var kvp in args.Transform) + foreach (var kvp in args.Transforms) VerifyCustArgs(env, kvp.Value); } @@ -400,7 +400,7 @@ protected bool SaveLoadText(IDataView view, IHostEnvironment env, { // Restrict the comparison to the subset of columns we were able to save. var chooseargs = new ChooseColumnsByIndexTransform.Arguments(); - chooseargs.Index = savable.ToArray(); + chooseargs.Indices = savable.ToArray(); view = new ChooseColumnsByIndexTransform(env, chooseargs, view); } @@ -671,7 +671,7 @@ protected bool SaveLoad(IDataView view, IHostEnvironment env, string suffix = "" { // Restrict the comparison to the subset of columns we were able to save. var chooseargs = new ChooseColumnsByIndexTransform.Arguments(); - chooseargs.Index = savable.ToArray(); + chooseargs.Indices = savable.ToArray(); view = new ChooseColumnsByIndexTransform(env, chooseargs, view); } @@ -722,7 +722,7 @@ protected bool SaveLoadTransposed(IDataView view, IHostEnvironment env, string s { // Restrict the comparison to the subset of columns we were able to save. var chooseargs = new ChooseColumnsByIndexTransform.Arguments(); - chooseargs.Index = savable.ToArray(); + chooseargs.Indices = savable.ToArray(); view = new ChooseColumnsByIndexTransform(env, chooseargs, view); } diff --git a/test/Microsoft.ML.Tests/ImagesTests.cs b/test/Microsoft.ML.Tests/ImagesTests.cs index 9e2552237f..dd2b6565c3 100644 --- a/test/Microsoft.ML.Tests/ImagesTests.cs +++ b/test/Microsoft.ML.Tests/ImagesTests.cs @@ -30,7 +30,7 @@ public void TestEstimatorChain() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -38,7 +38,7 @@ public void TestEstimatorChain() }, new MultiFileSource(dataFile)); var invalidData = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.R4, 0), } @@ -61,7 +61,7 @@ public void TestEstimatorSaveLoad() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -100,7 +100,7 @@ public void TestSaveImages() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -139,7 +139,7 @@ public void TestGreyscaleTransformImages() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -190,7 +190,7 @@ public void TestBackAndForthConversionWithAlphaInterleave() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -205,7 +205,7 @@ public void TestBackAndForthConversionWithAlphaInterleave() InterleaveArgb = true, Offset = -1f, Scale = 255f / 2, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=true} } }, pixels); @@ -257,7 +257,7 @@ public void TestBackAndForthConversionWithoutAlphaInterleave() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -272,7 +272,7 @@ public void TestBackAndForthConversionWithoutAlphaInterleave() InterleaveArgb = true, Offset = -1f, Scale = 255f / 2, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=false} } }, pixels); @@ -324,7 +324,7 @@ public void TestBackAndForthConversionWithAlphaNoInterleave() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -339,7 +339,7 @@ public void TestBackAndForthConversionWithAlphaNoInterleave() InterleaveArgb = false, Offset = -1f, Scale = 255f / 2, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=true} } }, pixels); @@ -391,7 +391,7 @@ public void TestBackAndForthConversionWithoutAlphaNoInterleave() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -406,7 +406,7 @@ public void TestBackAndForthConversionWithoutAlphaNoInterleave() InterleaveArgb = false, Offset = -1f, Scale = 255f / 2, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=false} } }, pixels); @@ -458,7 +458,7 @@ public void TestBackAndForthConversionWithAlphaInterleaveNoOffset() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -472,7 +472,7 @@ public void TestBackAndForthConversionWithAlphaInterleaveNoOffset() IDataView backToBitmaps = new VectorToImageTransform(env, new VectorToImageTransform.Arguments() { InterleaveArgb = true, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=true} } }, pixels); @@ -524,7 +524,7 @@ public void TestBackAndForthConversionWithoutAlphaInterleaveNoOffset() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -538,7 +538,7 @@ public void TestBackAndForthConversionWithoutAlphaInterleaveNoOffset() IDataView backToBitmaps = new VectorToImageTransform(env, new VectorToImageTransform.Arguments() { InterleaveArgb = true, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=false} } }, pixels); @@ -590,7 +590,7 @@ public void TestBackAndForthConversionWithAlphaNoInterleaveNoOffset() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -604,7 +604,7 @@ public void TestBackAndForthConversionWithAlphaNoInterleaveNoOffset() IDataView backToBitmaps = new VectorToImageTransform(env, new VectorToImageTransform.Arguments() { InterleaveArgb = false, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=true} } }, pixels); @@ -656,7 +656,7 @@ public void TestBackAndForthConversionWithoutAlphaNoInterleaveNoOffset() var imageFolder = Path.GetDirectoryName(dataFile); var data = TextLoader.Create(env, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Name", DataKind.TX, 1), @@ -669,7 +669,7 @@ public void TestBackAndForthConversionWithoutAlphaNoInterleaveNoOffset() IDataView backToBitmaps = new VectorToImageTransform(env, new VectorToImageTransform.Arguments() { InterleaveArgb = false, - Column = new VectorToImageTransform.Column[1]{ + Columns = new VectorToImageTransform.Column[1]{ new VectorToImageTransform.Column() { Name = "ImageRestored" , Source= "ImagePixels", ImageHeight=imageHeight, ImageWidth=imageWidth, ContainsAlpha=false} } }, pixels); diff --git a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs index 6e98232e5d..47cab13ce5 100644 --- a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs +++ b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs @@ -23,7 +23,7 @@ public void OvaLogisticRegression() var mlContext = new MLContext(seed: 1); var reader = new TextLoader(mlContext, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 4) }), @@ -57,7 +57,7 @@ public void OvaAveragedPerceptron() var mlContext = new MLContext(seed: 1); var reader = new TextLoader(mlContext, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 4) }), @@ -92,7 +92,7 @@ public void OvaFastTree() var mlContext = new MLContext(seed: 1); var reader = new TextLoader(mlContext, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 4) }), @@ -126,7 +126,7 @@ public void OvaLinearSvm() var mlContext = new MLContext(seed: 1); var reader = new TextLoader(mlContext, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(1, 4) }), diff --git a/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs b/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs index f5088c7a0f..9884296398 100644 --- a/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs @@ -27,7 +27,7 @@ public void TensorFlowTransforCifarEndToEndTest() var mlContext = new MLContext(seed: 1, conc: 1); var data = TextLoader.Create(mlContext, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("ImagePath", DataKind.TX, 0), new TextLoader.Column("Label", DataKind.TX, 1), diff --git a/test/Microsoft.ML.Tests/TermEstimatorTests.cs b/test/Microsoft.ML.Tests/TermEstimatorTests.cs index 2e43973321..d0a806a60f 100644 --- a/test/Microsoft.ML.Tests/TermEstimatorTests.cs +++ b/test/Microsoft.ML.Tests/TermEstimatorTests.cs @@ -57,7 +57,7 @@ void TestDifferentTypes() var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[]{ + Columns = new[]{ new TextLoader.Column("float1", DataKind.R4, 9), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(9), new TextLoader.Range(10), new TextLoader.Range(11), new TextLoader.Range(12) }), new TextLoader.Column("double1", DataKind.R8, 9), diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs b/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs index 5292d4b339..ececb5bc32 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs @@ -68,7 +68,7 @@ private TextLoader.Arguments GetFafmBCLoaderArgs() { Separator = "\t", HasHeader = false, - Column = new[] + Columns = new[] { new TextLoader.Column("Feature1", DataKind.R4, new [] { new TextLoader.Range(1, 2) }), new TextLoader.Column("Feature2", DataKind.R4, new [] { new TextLoader.Range(3, 4) }), diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs index ae13f3c97a..7eaf3130a4 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs @@ -134,7 +134,7 @@ private TextLoader.Arguments GetLoaderArgs(string labelColumnName, string matrix { Separator = "\t", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column(labelColumnName, DataKind.R4, new [] { new TextLoader.Range(0) }), new TextLoader.Column(matrixColumnIndexColumnName, DataKind.U4, new [] { new TextLoader.Range(1) }, new KeyCount(20)), diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs index d72ca7d504..870ac49e61 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/PriorRandomTests.cs @@ -18,7 +18,7 @@ private IDataView GetBreastCancerDataviewWithTextColumns() new TextLoader.Arguments() { HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", type: null, 0), new TextLoader.Column("F1", DataKind.Text, 1), diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs index 91f5d7a7b1..d6ecf7853b 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs @@ -34,7 +34,7 @@ public void PCATrainerEstimator() { HasHeader = true, Separator = "\t", - Column = new[] + Columns = new[] { new TextLoader.Column(featureColumn, DataKind.R4, new [] { new TextLoader.Range(1, 784) }) } @@ -62,7 +62,7 @@ public void KMeansEstimator() { HasHeader = true, Separator = "\t", - Column = new[] + Columns = new[] { new TextLoader.Column(featureColumn, DataKind.R4, new [] { new TextLoader.Range(1, 784) }), new TextLoader.Column(weights, DataKind.R4, 0) @@ -120,7 +120,7 @@ public void TestEstimatorMultiClassNaiveBayesTrainer() { Separator = "\t", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.BL, 0), new TextLoader.Column("SentimentText", DataKind.Text, 1) @@ -140,7 +140,7 @@ public void TestEstimatorMultiClassNaiveBayesTrainer() { HasHeader = true, Separator = "\t", - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("Workclass", DataKind.Text, 1), @@ -163,7 +163,7 @@ private IDataView GetRegressionPipeline() { Separator = ";", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 11), new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(0, 10) } ) @@ -177,7 +177,7 @@ private TextLoader.Arguments GetIrisLoaderArgs() { Separator = "comma", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(0, 3) }), new TextLoader.Column("Label", DataKind.Text, 4) @@ -190,7 +190,7 @@ private TextLoader.Arguments GetIrisLoaderArgs() var data = new TextLoader(Env, new TextLoader.Arguments() { Separator = "comma", - Column = new[] + Columns = new[] { new TextLoader.Column("Features", DataKind.R4, new [] { new TextLoader.Range(0, 3) }), new TextLoader.Column("Label", DataKind.Text, 4) diff --git a/test/Microsoft.ML.Tests/Transformers/ConcatTests.cs b/test/Microsoft.ML.Tests/Transformers/ConcatTests.cs index 50c439bbb8..da82cb3572 100644 --- a/test/Microsoft.ML.Tests/Transformers/ConcatTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/ConcatTests.cs @@ -27,7 +27,7 @@ void TestConcat() var source = new MultiFileSource(dataPath); var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[]{ + Columns = new[]{ new TextLoader.Column("float1", DataKind.R4, 9), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(9), new TextLoader.Range(10), new TextLoader.Range(11), new TextLoader.Range(12) }), new TextLoader.Column("float6", DataKind.R4, new[]{new TextLoader.Range(9), new TextLoader.Range(10), new TextLoader.Range(11), new TextLoader.Range(12, 14) }), @@ -84,7 +84,7 @@ public void ConcatWithAliases() var source = new MultiFileSource(dataPath); var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[]{ + Columns = new[]{ new TextLoader.Column("float1", DataKind.R4, 9), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(9), new TextLoader.Range(10), new TextLoader.Range(11), new TextLoader.Range(12) }), new TextLoader.Column("vfloat", DataKind.R4, new[]{new TextLoader.Range(9), new TextLoader.Range(10), new TextLoader.Range(11), new TextLoader.Range(12, null) { AutoEnd = false, VariableEnd = true } }) diff --git a/test/Microsoft.ML.Tests/Transformers/CopyColumnEstimatorTests.cs b/test/Microsoft.ML.Tests/Transformers/CopyColumnEstimatorTests.cs index e14960e18d..bd325e4c17 100644 --- a/test/Microsoft.ML.Tests/Transformers/CopyColumnEstimatorTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/CopyColumnEstimatorTests.cs @@ -129,7 +129,7 @@ void TestMetadataCopy() var dataView = env.Data.ReadFromEnumerable(data); var term = ValueToKeyMappingTransformer.Create(env, new ValueToKeyMappingTransformer.Arguments() { - Column = new[] { new ValueToKeyMappingTransformer.Column() { Source = "Term", Name = "T" } } + Columns = new[] { new ValueToKeyMappingTransformer.Column() { Source = "Term", Name = "T" } } }, dataView); var est = new ColumnCopyingEstimator(env, "T1", "T"); var transformer = est.Fit(term); diff --git a/test/Microsoft.ML.Tests/Transformers/KeyToValueTests.cs b/test/Microsoft.ML.Tests/Transformers/KeyToValueTests.cs index a442fe7284..3138b9d68a 100644 --- a/test/Microsoft.ML.Tests/Transformers/KeyToValueTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/KeyToValueTests.cs @@ -28,7 +28,7 @@ public void KeyToValueWorkout() var reader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[] + Columns = new[] { new TextLoader.Column("ScalarString", DataKind.TX, 1), new TextLoader.Column("VectorString", DataKind.TX, new[] {new TextLoader.Range(1, 4) }), diff --git a/test/Microsoft.ML.Tests/Transformers/NormalizerTests.cs b/test/Microsoft.ML.Tests/Transformers/NormalizerTests.cs index 290a42b9a9..f8d3fdf8c4 100644 --- a/test/Microsoft.ML.Tests/Transformers/NormalizerTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/NormalizerTests.cs @@ -32,7 +32,7 @@ public void NormalizerWorkout() var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[] { + Columns = new[] { new TextLoader.Column("float1", DataKind.R4, 1), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(1, 4) }), new TextLoader.Column("double1", DataKind.R8, 1), @@ -96,7 +96,7 @@ public void NormalizerParameters() var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[] { + Columns = new[] { new TextLoader.Column("float1", DataKind.R4, 1), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(1, 4) }), new TextLoader.Column("double1", DataKind.R8, 1), @@ -213,7 +213,7 @@ public void SimpleConstructorsAndExtensions() var loader = new TextLoader(Env, new TextLoader.Arguments { - Column = new[] { + Columns = new[] { new TextLoader.Column("Label", DataKind.R4, 0), new TextLoader.Column("float4", DataKind.R4, new[]{new TextLoader.Range(1, 4) }), } diff --git a/test/Microsoft.ML.Tests/Transformers/TextFeaturizerTests.cs b/test/Microsoft.ML.Tests/Transformers/TextFeaturizerTests.cs index efe7532cbd..e4b4410844 100644 --- a/test/Microsoft.ML.Tests/Transformers/TextFeaturizerTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/TextFeaturizerTests.cs @@ -175,7 +175,7 @@ public void StopWordsRemoverFromFactory() string sentimentDataPath = GetDataPath("wikipedia-detox-250-line-data.tsv"); var data = TextLoader.Create(ML, new TextLoader.Arguments() { - Column = new[] + Columns = new[] { new TextLoader.Column("Text", DataKind.TX, 1) } diff --git a/test/Microsoft.ML.Tests/Transformers/WordEmbeddingsTests.cs b/test/Microsoft.ML.Tests/Transformers/WordEmbeddingsTests.cs index 5da13b88cb..37dfe4cd9b 100644 --- a/test/Microsoft.ML.Tests/Transformers/WordEmbeddingsTests.cs +++ b/test/Microsoft.ML.Tests/Transformers/WordEmbeddingsTests.cs @@ -30,7 +30,7 @@ public void TestWordEmbeddings() { Separator = "\t", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.BL, 0), new TextLoader.Column("SentimentText", DataKind.Text, 1) @@ -69,7 +69,7 @@ public void TestCustomWordEmbeddings() { Separator = "\t", HasHeader = true, - Column = new[] + Columns = new[] { new TextLoader.Column("Label", DataKind.BL, 0), new TextLoader.Column("SentimentText", DataKind.Text, 1)