diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LbfgsPredictorBase.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LbfgsPredictorBase.cs index 266d4dea88..799b2eb26f 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LbfgsPredictorBase.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LbfgsPredictorBase.cs @@ -54,7 +54,7 @@ public abstract class OptionsBase : TrainerInputBaseWithWeight ShortName = "m, MemorySize", SortOrder = 50)] [TGUI(Description = "Memory size for L-BFGS", SuggestedSweeps = "5,20,50")] [TlcModule.SweepableDiscreteParamAttribute("MemorySize", new object[] { 5, 20, 50 })] - public int IterationsToRemember = Defaults.IterationsToRemember; + public int HistorySize = Defaults.HistorySize; /// /// Number of iterations. @@ -121,7 +121,7 @@ internal static class Defaults public const float L2Regularization = 1; public const float L1Regularization = 1; public const float OptimizationTolerance = 1e-7f; - public const int IterationsToRemember = 20; + public const int HistorySize = 20; public const int NumberOfIterations = int.MaxValue; public const bool EnforceNonNegativity = false; } @@ -192,7 +192,7 @@ internal LbfgsTrainerBase(IHostEnvironment env, L1Regularization = l1Weight, L2Regularization = l2Weight, OptmizationTolerance = optimizationTolerance, - IterationsToRemember = memorySize, + HistorySize = memorySize, EnforceNonNegativity = enforceNoNegativity }, labelColumn) @@ -220,7 +220,7 @@ internal LbfgsTrainerBase(IHostEnvironment env, Host.CheckUserArg(LbfgsTrainerOptions.L2Regularization >= 0, nameof(LbfgsTrainerOptions.L2Regularization), "Must be non-negative"); Host.CheckUserArg(LbfgsTrainerOptions.L1Regularization >= 0, nameof(LbfgsTrainerOptions.L1Regularization), "Must be non-negative"); Host.CheckUserArg(LbfgsTrainerOptions.OptmizationTolerance > 0, nameof(LbfgsTrainerOptions.OptmizationTolerance), "Must be positive"); - Host.CheckUserArg(LbfgsTrainerOptions.IterationsToRemember > 0, nameof(LbfgsTrainerOptions.IterationsToRemember), "Must be positive"); + Host.CheckUserArg(LbfgsTrainerOptions.HistorySize > 0, nameof(LbfgsTrainerOptions.HistorySize), "Must be positive"); Host.CheckUserArg(LbfgsTrainerOptions.NumberOfIterations > 0, nameof(LbfgsTrainerOptions.NumberOfIterations), "Must be positive"); Host.CheckUserArg(LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance >= 0, nameof(LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance), "Must be non-negative"); Host.CheckUserArg(LbfgsTrainerOptions.NumberOfThreads == null || LbfgsTrainerOptions.NumberOfThreads.Value >= 0, nameof(LbfgsTrainerOptions.NumberOfThreads), "Must be non-negative"); @@ -228,12 +228,12 @@ internal LbfgsTrainerBase(IHostEnvironment env, Host.CheckParam(!(LbfgsTrainerOptions.L2Regularization < 0), nameof(LbfgsTrainerOptions.L2Regularization), "Must be non-negative, if provided."); Host.CheckParam(!(LbfgsTrainerOptions.L1Regularization < 0), nameof(LbfgsTrainerOptions.L1Regularization), "Must be non-negative, if provided"); Host.CheckParam(!(LbfgsTrainerOptions.OptmizationTolerance <= 0), nameof(LbfgsTrainerOptions.OptmizationTolerance), "Must be positive, if provided."); - Host.CheckParam(!(LbfgsTrainerOptions.IterationsToRemember <= 0), nameof(LbfgsTrainerOptions.IterationsToRemember), "Must be positive, if provided."); + Host.CheckParam(!(LbfgsTrainerOptions.HistorySize <= 0), nameof(LbfgsTrainerOptions.HistorySize), "Must be positive, if provided."); L2Weight = LbfgsTrainerOptions.L2Regularization; L1Weight = LbfgsTrainerOptions.L1Regularization; OptTol = LbfgsTrainerOptions.OptmizationTolerance; - MemorySize =LbfgsTrainerOptions.IterationsToRemember; + MemorySize =LbfgsTrainerOptions.HistorySize; MaxIterations = LbfgsTrainerOptions.NumberOfIterations; SgdInitializationTolerance = LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance; Quiet = LbfgsTrainerOptions.Quiet; @@ -272,7 +272,7 @@ private static TOptions ArgsInit(string featureColumn, SchemaShape.Column labelC L1Regularization = l1Weight, L2Regularization = l2Weight, OptmizationTolerance = optimizationTolerance, - IterationsToRemember = memorySize, + HistorySize = memorySize, EnforceNonNegativity = enforceNoNegativity }; diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs index 8c570d02f4..405048f3b1 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs @@ -83,7 +83,7 @@ internal LogisticRegression(IHostEnvironment env, float l1Weight = Options.Defaults.L1Regularization, float l2Weight = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int memorySize = Options.Defaults.IterationsToRemember, + int memorySize = Options.Defaults.HistorySize, bool enforceNoNegativity = Options.Defaults.EnforceNonNegativity) : base(env, featureColumn, TrainerUtils.MakeBoolScalarLabel(labelColumn), weights, l1Weight, l2Weight, optimizationTolerance, memorySize, enforceNoNegativity) diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs index ed700c1149..e4175dee8b 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs @@ -90,7 +90,7 @@ internal MulticlassLogisticRegression(IHostEnvironment env, float l1Weight = Options.Defaults.L1Regularization, float l2Weight = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int memorySize = Options.Defaults.IterationsToRemember, + int memorySize = Options.Defaults.HistorySize, bool enforceNoNegativity = Options.Defaults.EnforceNonNegativity) : base(env, featureColumn, TrainerUtils.MakeU4ScalarColumn(labelColumn), weights, l1Weight, l2Weight, optimizationTolerance, memorySize, enforceNoNegativity) { diff --git a/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs index 7ad1981383..63d455a58e 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs @@ -58,7 +58,7 @@ internal PoissonRegression(IHostEnvironment env, float l1Weight = Options.Defaults.L1Regularization, float l2Weight = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int memorySize = Options.Defaults.IterationsToRemember, + int memorySize = Options.Defaults.HistorySize, bool enforceNoNegativity = Options.Defaults.EnforceNonNegativity) : base(env, featureColumn, TrainerUtils.MakeR4ScalarColumn(labelColumn), weights, l1Weight, l2Weight, optimizationTolerance, memorySize, enforceNoNegativity) diff --git a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs index 44eb1b1d99..2e64b87302 100644 --- a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs +++ b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs @@ -453,7 +453,7 @@ public static OnlineGradientDescentTrainer OnlineGradientDescent(this Regression /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// /// @@ -469,12 +469,12 @@ public static LogisticRegression LogisticRegression(this BinaryClassificationCat float l1Regularization = LROptions.Defaults.L1Regularization, float l2Regularization = LROptions.Defaults.L2Regularization, float optimizationTolerance = LROptions.Defaults.OptimizationTolerance, - int iterationsToRemember = LROptions.Defaults.IterationsToRemember, + int historySize = LROptions.Defaults.HistorySize, bool enforceNonNegativity = LROptions.Defaults.EnforceNonNegativity) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + return new LogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// @@ -501,7 +501,7 @@ public static LogisticRegression LogisticRegression(this BinaryClassificationCat /// Weight of L1 regularization term. /// Weight of L2 regularization term. /// Threshold for optimizer convergence. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Enforce non-negative weights. public static PoissonRegression PoissonRegression(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, @@ -510,12 +510,12 @@ public static PoissonRegression PoissonRegression(this RegressionCatalog.Regress float l1Regularization = LROptions.Defaults.L1Regularization, float l2Regularization = LROptions.Defaults.L2Regularization, float optimizationTolerance = LROptions.Defaults.OptimizationTolerance, - int iterationsToRemember = LROptions.Defaults.IterationsToRemember, + int historySize = LROptions.Defaults.HistorySize, bool enforceNonNegativity = LROptions.Defaults.EnforceNonNegativity) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new PoissonRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + return new PoissonRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// @@ -542,7 +542,7 @@ public static PoissonRegression PoissonRegression(this RegressionCatalog.Regress /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. public static MulticlassLogisticRegression LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, @@ -551,12 +551,12 @@ public static MulticlassLogisticRegression LogisticRegression(this MulticlassCla float l1Regularization = LROptions.Defaults.L1Regularization, float l2Regularization = LROptions.Defaults.L2Regularization, float optimizationTolerance = LROptions.Defaults.OptimizationTolerance, - int iterationsToRemember = LROptions.Defaults.IterationsToRemember, + int historySize = LROptions.Defaults.HistorySize, bool enforceNonNegativity = LROptions.Defaults.EnforceNonNegativity) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new MulticlassLogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + return new MulticlassLogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// diff --git a/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs b/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs index 5d83ad9e86..96be5260d2 100644 --- a/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs +++ b/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs @@ -26,7 +26,7 @@ public static class LbfgsBinaryClassificationStaticExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -41,17 +41,17 @@ public static (Scalar score, Scalar probability, Scalar pred float l1Regularization = Options.Defaults.L1Regularization, float l2Regularization = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int iterationsToRemember = Options.Defaults.IterationsToRemember, + int historySize = Options.Defaults.HistorySize, bool enforceNonNegativity = Options.Defaults.EnforceNonNegativity, Action> onFit = null) { - LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity, onFit); + LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity, onFit); var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { var trainer = new LogisticRegression(env, labelName, featuresName, weightsName, - l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -122,7 +122,7 @@ public static class LbfgsRegressionExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -137,17 +137,17 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT float l1Regularization = Options.Defaults.L1Regularization, float l2Regularization = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int iterationsToRemember = Options.Defaults.IterationsToRemember, + int historySize = Options.Defaults.HistorySize, bool enforceNonNegativity = Options.Defaults.EnforceNonNegativity, Action onFit = null) { - LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity, onFit); + LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity, onFit); var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { var trainer = new PoissonRegression(env, labelName, featuresName, weightsName, - l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -218,7 +218,7 @@ public static class LbfgsMulticlassExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -234,17 +234,17 @@ public static (Vector score, Key predictedLabel) float l1Regularization = Options.Defaults.L1Regularization, float l2Regularization = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int iterationsToRemember = Options.Defaults.IterationsToRemember, + int historySize = Options.Defaults.HistorySize, bool enforceNonNegativity = Options.Defaults.EnforceNonNegativity, Action onFit = null) { - LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity, onFit); + LbfgsStaticUtils.ValidateParams(label, features, weights, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity, onFit); var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { var trainer = new MulticlassLogisticRegression(env, labelName, featuresName, weightsName, - l1Regularization, l2Regularization, optimizationTolerance, iterationsToRemember, enforceNonNegativity); + l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -307,7 +307,7 @@ internal static void ValidateParams(PipelineColumn label, float l1Regularization = Options.Defaults.L1Regularization, float l2Regularization = Options.Defaults.L2Regularization, float optimizationTolerance = Options.Defaults.OptimizationTolerance, - int iterationsToRemember = Options.Defaults.IterationsToRemember, + int historySize = Options.Defaults.HistorySize, bool enforceNonNegativity = Options.Defaults.EnforceNonNegativity, Delegate onFit = null) { @@ -316,7 +316,7 @@ internal static void ValidateParams(PipelineColumn label, Contracts.CheckParam(l2Regularization >= 0, nameof(l2Regularization), "Must be non-negative"); Contracts.CheckParam(l1Regularization >= 0, nameof(l1Regularization), "Must be non-negative"); Contracts.CheckParam(optimizationTolerance > 0, nameof(optimizationTolerance), "Must be positive"); - Contracts.CheckParam(iterationsToRemember > 0, nameof(iterationsToRemember), "Must be positive"); + Contracts.CheckParam(historySize > 0, nameof(historySize), "Must be positive"); Contracts.CheckValueOrNull(onFit); } } diff --git a/test/BaselineOutput/Common/EntryPoints/core_manifest.json b/test/BaselineOutput/Common/EntryPoints/core_manifest.json index 65b0e7e30e..3f190a7257 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_manifest.json +++ b/test/BaselineOutput/Common/EntryPoints/core_manifest.json @@ -13503,7 +13503,7 @@ } }, { - "Name": "IterationsToRemember", + "Name": "HistorySize", "Type": "Int", "Desc": "Memory size for L-BFGS. Low=faster, less accurate", "Aliases": [ @@ -13823,7 +13823,7 @@ } }, { - "Name": "IterationsToRemember", + "Name": "HistorySize", "Type": "Int", "Desc": "Memory size for L-BFGS. Low=faster, less accurate", "Aliases": [ @@ -14848,7 +14848,7 @@ } }, { - "Name": "IterationsToRemember", + "Name": "HistorySize", "Type": "Int", "Desc": "Memory size for L-BFGS. Low=faster, less accurate", "Aliases": [