Skip to content

Making IDataView TrainingData inside LearnerInputBase internal. #2079

Closed
@abgoswam

Description

@abgoswam

One of the fields in the Arguments class for FastTree is public IDataView TrainingData

[TlcModule.EntryPointKind(typeof(CommonInputs.ITrainerInput))]
public abstract class LearnerInputBase
{
[Argument(ArgumentType.Required, ShortName = "data", HelpText = "The data to be used for training", SortOrder = 1, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly)]
public IDataView TrainingData;

This is currently being used by the Entrypoint infrastructure. We should consider making this field internal

However, this needs to be done with caution.

Here is explanation by @TomFinley :

" Anything relating to entry-points specifically should be internal, but we must do so carefully, since currently entry-points and command line processing relies on processing of fields which is currently done on public fields only, whereas it should be over public or internal fields. Once that is done, any fields that are relevant to entry-points only should be internal.

(This is a problem for all the settings objects, that they are exposing things that should not be in the public API in some cases. (Indeed entry-points will need a lot of work to make them work for estimators and transformers. Estimator graphs are sort of a "lightweight" estimator chain as they stand right now that performs absolutely no validation. But for now, anything relating to entry-points should just be hidden.)

@TomFinley @artidoro

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions