Skip to content

Namespace reorg for the public surface #2751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
sfilipi opened this issue Feb 26, 2019 · 5 comments
Closed

Namespace reorg for the public surface #2751

sfilipi opened this issue Feb 26, 2019 · 5 comments
Assignees
Milestone

Comments

@sfilipi
Copy link
Member

sfilipi commented Feb 26, 2019

Related to #2326, and the feedback of the ML.Net public surface API recommended the following changes:

1 - Microsoft.ML.Trainers.* everything should go to Microsoft.ML.Trainers, except FastTree.
2- Microsoft.ML.Transforms.* should go to Microsoft.ML.Transforms with the exception of Text and Images

cc @Ivanidzo4ka , @eerhardt @TomFinley

@sfilipi
Copy link
Member Author

sfilipi commented Mar 7, 2019

There is more to do on this:
remove:
Microsoft.ML.Transforms.TimeSeries
Microsoft.ML.Transforms.FeatureSelection
Microsoft.ML.Transforms.Tensorflow
Microsoft.ML.Trainers.Recommender

@sfilipi sfilipi reopened this Mar 7, 2019
@Ivanidzo4ka
Copy link
Contributor

Well issue states Microsoft.ML package, and none of this namespaces is in that package.

@sfilipi
Copy link
Member Author

sfilipi commented Mar 8, 2019

Proposal for the final namespace landscape of the public surface:

  • Microsoft.ML.ImageAnalytics - contains both the ImageLoader and the other image transforms.
    The ImageLoader gets moved into ML.Data, where TextLoader is. The other image transforms get placed into Microsoft.ML.Transforms.Image (consistent with Microsoft.ML.Transforms.Text).

  • Microsoft.ML.LightGBM -> changes to Microsoft.ML.Trainers.LightGBM*

  • Microsoft.ML.Trainers.Recommender -> stays as is, if we follow the pattern of: external trainer code wrapped from ML.NET gets its own namespace (e.g. Light GBM).

  • Microsoft.ML.Transforms.FeatureSelection -> moves to Microsoft.ML.Transforms
    There will be no Microsoft.ML.Transforms.FeatureSelection.

  • There are only 3 public types inside Microsoft.ML.Model.
    Move: IHaveFeatureWeights and ModelParametersBase
    inside Microsoft.ML.Trainers (or should it go under Microsoft.ML together with ICanSaveModel)

The proposal above is me synthesizing the discussion we have had in the past about trainers.

My personal opinion is that we should not have Microsoft.ML.Trainers.FastTree and Microsoft.ML.Trainers.LightGBM. We can fold them both into a Microsoft.ML.Trainers.Trees, call the linear ones Microsoft.ML.Trainers.Linear (ensembles can come on Microsoft.ML.Trainers.Ensembles, when time. ).

move to Microsoft.ML.Transforms.Onnx.


The other namespaces that are not changing are:

  • Microsoft.ML
  • Microsoft.ML.Calibrators
  • Microsoft.ML.Data
  • Microsoft.ML.EntryPoints
  • Microsoft.ML.Model
  • Microsoft.ML.StaticPipe
  • Microsoft.ML.Trainers
  • Microsoft.ML.Trainers.FastTree
  • Microsoft.ML.Transforms
  • Microsoft.ML.Transforms.TensorFlow
  • Microsoft.ML.Transforms.Text
  • Microsoft.ML.Transforms.TimeSeries

@Ivanidzo4ka @TomFinley @eerhardt @wschin @shauheen @CESARDELATORRE

@wschin
Copy link
Member

wschin commented Mar 8, 2019

I am not sure if Microsoft.ML.Trainers.Linear is a over-cooked. If we do Microsoft.ML.Trainers.Linear, shall we also do Microsoft.ML.Trainers.KernelMachines and Microsoft.ML.Trainers.FactorizationMachines? My feeling is that machine learning thigns are essentially ambiguous and we often get super long names to make then formally defined. Could all trainers stay in ML.Trainers unless it has a special reason?

@sfilipi sfilipi changed the title Namespace reorg for the Microsoft.ML package Namespace reorg for the public surface Mar 8, 2019
@singlis
Copy link
Member

singlis commented Mar 8, 2019

I agree -- also I feel that external libraries like LightGBM ( and TensorFlow ) already create a natural separation from their name alone.

@shauheen shauheen modified the milestones: 0219, 0319 Mar 14, 2019
@ghost ghost locked as resolved and limited conversation to collaborators Mar 24, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants