diff --git a/src/Microsoft.ML.Core/ComponentModel/ComponentCatalog.cs b/src/Microsoft.ML.Core/ComponentModel/ComponentCatalog.cs
index 714995a56e..78ec31205f 100644
--- a/src/Microsoft.ML.Core/ComponentModel/ComponentCatalog.cs
+++ b/src/Microsoft.ML.Core/ComponentModel/ComponentCatalog.cs
@@ -454,9 +454,9 @@ private static bool TryGetIniters(Type instType, Type loaderType, Type[] parmTyp
var parmTypesWithEnv = Utils.Concat(new Type[1] { typeof(IHostEnvironment) }, parmTypes);
if (Utils.Size(parmTypes) == 0 && (getter = FindInstanceGetter(instType, loaderType)) != null)
return true;
- if (instType.IsAssignableFrom(loaderType) && (ctor = loaderType.GetConstructor(parmTypes ?? Type.EmptyTypes)) != null)
+ if (instType.IsAssignableFrom(loaderType) && (ctor = loaderType.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, parmTypes ?? Type.EmptyTypes, null)) != null)
return true;
- if (instType.IsAssignableFrom(loaderType) && (ctor = loaderType.GetConstructor(parmTypesWithEnv ?? Type.EmptyTypes)) != null)
+ if (instType.IsAssignableFrom(loaderType) && (ctor = loaderType.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, parmTypesWithEnv ?? Type.EmptyTypes, null)) != null)
{
requireEnvironment = true;
return true;
diff --git a/src/Microsoft.ML.FastTree/FastTreeClassification.cs b/src/Microsoft.ML.FastTree/FastTreeClassification.cs
index 97de30bf75..97cc1c43f9 100644
--- a/src/Microsoft.ML.FastTree/FastTreeClassification.cs
+++ b/src/Microsoft.ML.FastTree/FastTreeClassification.cs
@@ -142,7 +142,7 @@ public FastTreeBinaryClassificationTrainer(IHostEnvironment env, string labelCol
///
/// Initializes a new instance of by using the legacy class.
///
- public FastTreeBinaryClassificationTrainer(IHostEnvironment env, Arguments args)
+ internal FastTreeBinaryClassificationTrainer(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn))
{
_outputColumns = new[]
diff --git a/src/Microsoft.ML.FastTree/FastTreeRanking.cs b/src/Microsoft.ML.FastTree/FastTreeRanking.cs
index 4c36e6e4cc..90331c47b4 100644
--- a/src/Microsoft.ML.FastTree/FastTreeRanking.cs
+++ b/src/Microsoft.ML.FastTree/FastTreeRanking.cs
@@ -82,7 +82,7 @@ public FastTreeRankingTrainer(IHostEnvironment env, string labelColumn, string f
///
/// Initializes a new instance of by using the legacy class.
///
- public FastTreeRankingTrainer(IHostEnvironment env, Arguments args)
+ internal FastTreeRankingTrainer(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn))
{
_outputColumns = new[]
diff --git a/src/Microsoft.ML.FastTree/FastTreeRegression.cs b/src/Microsoft.ML.FastTree/FastTreeRegression.cs
index 3984582c61..717824b6f5 100644
--- a/src/Microsoft.ML.FastTree/FastTreeRegression.cs
+++ b/src/Microsoft.ML.FastTree/FastTreeRegression.cs
@@ -75,7 +75,7 @@ public FastTreeRegressionTrainer(IHostEnvironment env, string labelColumn, strin
///
/// Initializes a new instance of by using the legacy class.
///
- public FastTreeRegressionTrainer(IHostEnvironment env, Arguments args)
+ internal FastTreeRegressionTrainer(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn))
{
_outputColumns = new[]
diff --git a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs
index 4511ab7f1d..eedbfe7389 100644
--- a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs
+++ b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs
@@ -67,7 +67,7 @@ public FastTreeTweedieTrainer(IHostEnvironment env, string labelColumn, string f
///
/// Initializes a new instance of by using the legacy class.
///
- public FastTreeTweedieTrainer(IHostEnvironment env, Arguments args)
+ internal FastTreeTweedieTrainer(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn))
{
Initialize();
diff --git a/src/Microsoft.ML.FastTree/GamClassification.cs b/src/Microsoft.ML.FastTree/GamClassification.cs
index e8aad81d13..1448333764 100644
--- a/src/Microsoft.ML.FastTree/GamClassification.cs
+++ b/src/Microsoft.ML.FastTree/GamClassification.cs
@@ -46,7 +46,7 @@ public sealed class Arguments : ArgumentsBase
public override PredictionKind PredictionKind => PredictionKind.BinaryClassification;
private protected override bool NeedCalibration => true;
- public BinaryClassificationGamTrainer(IHostEnvironment env, Arguments args)
+ internal BinaryClassificationGamTrainer(IHostEnvironment env, Arguments args)
: base(env, args)
{
_sigmoidParameter = 1;
diff --git a/src/Microsoft.ML.FastTree/GamRegression.cs b/src/Microsoft.ML.FastTree/GamRegression.cs
index 9fe4610c8c..119e8c2a85 100644
--- a/src/Microsoft.ML.FastTree/GamRegression.cs
+++ b/src/Microsoft.ML.FastTree/GamRegression.cs
@@ -40,7 +40,7 @@ public partial class Arguments : ArgumentsBase
public override PredictionKind PredictionKind => PredictionKind.Regression;
- public RegressionGamTrainer(IHostEnvironment env, Arguments args)
+ internal RegressionGamTrainer(IHostEnvironment env, Arguments args)
: base(env, args) { }
internal override void CheckLabel(RoleMappedData data)
diff --git a/src/Microsoft.ML.FastTree/RandomForestClassification.cs b/src/Microsoft.ML.FastTree/RandomForestClassification.cs
index c5222d4e87..b5ba1f43e7 100644
--- a/src/Microsoft.ML.FastTree/RandomForestClassification.cs
+++ b/src/Microsoft.ML.FastTree/RandomForestClassification.cs
@@ -158,7 +158,7 @@ public FastForestClassification(IHostEnvironment env, string labelColumn, string
///
/// Initializes a new instance of by using the legacy class.
///
- public FastForestClassification(IHostEnvironment env, Arguments args)
+ internal FastForestClassification(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn))
{
_outputColumns = new[]
diff --git a/src/Microsoft.ML.FastTree/RandomForestRegression.cs b/src/Microsoft.ML.FastTree/RandomForestRegression.cs
index 510c3b0ec6..1261cd0e37 100644
--- a/src/Microsoft.ML.FastTree/RandomForestRegression.cs
+++ b/src/Microsoft.ML.FastTree/RandomForestRegression.cs
@@ -178,7 +178,7 @@ public FastForestRegression(IHostEnvironment env, string labelColumn, string fea
///
/// Initializes a new instance of by using the legacy class.
///
- public FastForestRegression(IHostEnvironment env, Arguments args)
+ internal FastForestRegression(IHostEnvironment env, Arguments args)
: base(env, args, MakeLabelColumn(args.LabelColumn), true)
{
_outputColumns = new[]
diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/Pkpd.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/Pkpd.cs
index 9e7063cd70..74596e95f1 100644
--- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/Pkpd.cs
+++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/Pkpd.cs
@@ -73,7 +73,7 @@ public sealed class Arguments : ArgumentsBase
/// Developers should instantiate by supplying the trainer argument directly to the constructor
/// using the other public constructor.
///
- public Pkpd(IHostEnvironment env, Arguments args)
+ internal Pkpd(IHostEnvironment env, Arguments args)
: base(env, args, LoadNameValue)
{
}
diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs
index 4941764c35..59199b3549 100644
--- a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs
+++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs
@@ -70,7 +70,7 @@ protected override SchemaShape.Column[] GetOutputColumnsCore(SchemaShape inputSc
};
}
- public SdcaMultiClassTrainer(IHostEnvironment env, Arguments args)
+ internal SdcaMultiClassTrainer(IHostEnvironment env, Arguments args)
: this(env, args, args.FeatureColumn, args.LabelColumn)
{
}
diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs
index 4f6755e528..5148ca11ab 100644
--- a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs
+++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs
@@ -67,7 +67,7 @@ public SdcaRegressionTrainer(IHostEnvironment env, Arguments args, string featur
};
}
- public SdcaRegressionTrainer(IHostEnvironment env, Arguments args)
+ internal SdcaRegressionTrainer(IHostEnvironment env, Arguments args)
: this(env, args, args.FeatureColumn, args.LabelColumn)
{
}
diff --git a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs
index 70217d8afd..8b3d8333e0 100644
--- a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs
+++ b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs
@@ -122,7 +122,7 @@ public void TrainSentiment()
}, text);
// Train
- var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments() { MaxIterations = 20 });
+ var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments() { MaxIterations = 20 }, "Features", "Label");
var trainRoles = new RoleMappedData(trans, label: "Label", feature: "Features");
var predicted = trainer.Train(trainRoles);
diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/DecomposableTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/DecomposableTrainAndPredict.cs
index e6a7b57944..0d20c937c3 100644
--- a/test/Microsoft.ML.Tests/Scenarios/Api/DecomposableTrainAndPredict.cs
+++ b/test/Microsoft.ML.Tests/Scenarios/Api/DecomposableTrainAndPredict.cs
@@ -30,7 +30,7 @@ void DecomposableTrainAndPredict()
var loader = TextLoader.ReadFile(env, MakeIrisTextLoaderArgs(), new MultiFileSource(GetDataPath(TestDatasets.irisData.trainFilename)));
var term = TermTransform.Create(env, loader, "Label");
var concat = new ConcatTransform(env, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth").Transform(term);
- var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 });
+ var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 }, "Features", "Label");
IDataView trainData = trainer.Info.WantCaching ? (IDataView)new CacheDataView(env, concat, prefetch: null) : concat;
var trainRoles = new RoleMappedData(trainData, label: "Label", feature: "Features");
diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs
index 79b66e43bc..6e937ce238 100644
--- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs
+++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs
@@ -30,7 +30,7 @@ void New_DecomposableTrainAndPredict()
var loader = TextLoader.ReadFile(env, MakeIrisTextLoaderArgs(), new MultiFileSource(dataPath));
var term = TermTransform.Create(env, loader, "Label");
var concat = new ConcatTransform(env, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth").Transform(term);
- var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 });
+ var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 }, "Features", "Label");
IDataView trainData = trainer.Info.WantCaching ? (IDataView)new CacheDataView(env, concat, prefetch: null) : concat;
var trainRoles = new RoleMappedData(trainData, label: "Label", feature: "Features");
diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Extensibility.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Extensibility.cs
index f893e5de47..f77dac19ba 100644
--- a/test/Microsoft.ML.Tests/Scenarios/Api/Extensibility.cs
+++ b/test/Microsoft.ML.Tests/Scenarios/Api/Extensibility.cs
@@ -35,7 +35,7 @@ void Extensibility()
var concat = new ConcatTransform(env, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")
.Transform(term);
- var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 });
+ var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments { MaxIterations = 100, Shuffle = true, NumThreads = 1 }, "Features", "Label");
IDataView trainData = trainer.Info.WantCaching ? (IDataView)new CacheDataView(env, concat, prefetch: null) : concat;
var trainRoles = new RoleMappedData(trainData, label: "Label", feature: "Features");
diff --git a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs
index 4effd29e27..3e023e0ca0 100644
--- a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs
+++ b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs
@@ -46,7 +46,7 @@ public void TrainAndPredictIrisModelUsingDirectInstantiationTest()
pipeline = NormalizeTransform.CreateMinMaxNormalizer(env, pipeline, "Features");
// Train
- var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments() { NumThreads = 1 } );
+ var trainer = new SdcaMultiClassTrainer(env, new SdcaMultiClassTrainer.Arguments() { NumThreads = 1 }, "Features", "Label");
// Explicity adding CacheDataView since caching is not working though trainer has 'Caching' On/Auto
var cached = new CacheDataView(env, pipeline, prefetch: null);