Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
public int HistorySize = Defaults.HistorySize;
public int HistoryLength = Defaults.HistorySize;

Size sounds like the number of parameters we can store.


/// <summary>
/// Number of iterations.
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -192,7 +192,7 @@ internal LbfgsTrainerBase(IHostEnvironment env,
L1Regularization = l1Weight,
L2Regularization = l2Weight,
OptmizationTolerance = optimizationTolerance,
IterationsToRemember = memorySize,
HistorySize = memorySize,
EnforceNonNegativity = enforceNoNegativity
},
labelColumn)
Expand Down Expand Up @@ -220,20 +220,20 @@ 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");

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;
Expand Down Expand Up @@ -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
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
18 changes: 9 additions & 9 deletions src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ public static OnlineGradientDescentTrainer OnlineGradientDescent(this Regression
/// <param name="enforceNonNegativity">Enforce non-negative weights.</param>
/// <param name="l1Regularization">Weight of L1 regularization term.</param>
/// <param name="l2Regularization">Weight of L2 regularization term.</param>
/// <param name="iterationsToRemember">Memory size for <see cref="Trainers.LogisticRegression"/>. Low=faster, less accurate.</param>
/// <param name="historySize">Memory size for <see cref="Trainers.LogisticRegression"/>. Low=faster, less accurate.</param>
/// <param name="optimizationTolerance">Threshold for optimizer convergence.</param>
/// <example>
/// <format type="text/markdown">
Expand All @@ -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);
}

/// <summary>
Expand All @@ -501,7 +501,7 @@ public static LogisticRegression LogisticRegression(this BinaryClassificationCat
/// <param name="l1Regularization">Weight of L1 regularization term.</param>
/// <param name="l2Regularization">Weight of L2 regularization term.</param>
/// <param name="optimizationTolerance">Threshold for optimizer convergence.</param>
/// <param name="iterationsToRemember">Memory size for <see cref="Microsoft.ML.Trainers.PoissonRegression"/>. Low=faster, less accurate.</param>
/// <param name="historySize">Memory size for <see cref="Microsoft.ML.Trainers.PoissonRegression"/>. Low=faster, less accurate.</param>
/// <param name="enforceNonNegativity">Enforce non-negative weights.</param>
public static PoissonRegression PoissonRegression(this RegressionCatalog.RegressionTrainers catalog,
string labelColumnName = DefaultColumnNames.Label,
Expand All @@ -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);
}

/// <summary>
Expand All @@ -542,7 +542,7 @@ public static PoissonRegression PoissonRegression(this RegressionCatalog.Regress
/// <param name="enforceNonNegativity">Enforce non-negative weights.</param>
/// <param name="l1Regularization">Weight of L1 regularization term.</param>
/// <param name="l2Regularization">Weight of L2 regularization term.</param>
/// <param name="iterationsToRemember">Memory size for <see cref="Microsoft.ML.Trainers.MulticlassLogisticRegression"/>. Low=faster, less accurate.</param>
/// <param name="historySize">Memory size for <see cref="Microsoft.ML.Trainers.MulticlassLogisticRegression"/>. Low=faster, less accurate.</param>
/// <param name="optimizationTolerance">Threshold for optimizer convergence.</param>
public static MulticlassLogisticRegression LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog,
string labelColumnName = DefaultColumnNames.Label,
Expand All @@ -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);
}

/// <summary>
Expand Down
Loading