Microsoft has refreshed its ML.Net open source machine learning framework, fitting its beta Version 0.5 with TensorFlow model scoring as a transform to ML.Net. This capability enables use of an existing model from Google’s TensorFlow deep learning and machine learning toolkit in an ML.Net experiment.
What’s new in ML.Net 0.5
Version 0.5 begins adding support for deep learning, with the TensorFlow Transform class, which can take an existing TensorFlow model and get scores from that model into ML.Net. Users of this TensorFlow scoring capability do not need a working knowledge of TensorFlow internal details. The transform is based on code from the TensorFlowSharp .Net bindings.
To use this capability, developers add a reference to ML.Net NuGet packages to .Net Core and .Net Framework apps. ML.Net references the native TensorFlow library, which lets developers write code that loads an existing trained TensorFlow model for scoring.
Planned features for ML.Net
In future ML.Net releases, Microsoft plans to enable the identification of expected inputs and outputs of TensorFlow models. Currently, developers are advised to use TensorFlow APIs or a tool such as Netron to explore the TensorFlow model.
Microsoft will also updating ML.Net APIs for improved flexibility, to overcome limitations of using TensorFlow in ML.Net now. With planned APIs, TensorFlow model scores will be directly accessible, so developers can score with the TensorFlow model without needing to add an additional learner and its train process.
Right now, ML.Net surfaces TensorFlow but plans call for possible deep learning library integrations. These could include Torch and CNTK.
Microsoft also is working on a new ML.Net API to improve flexibility and ease of use. When the API is deemed ready, the company will deprecate the current API,
LearningPipeline. Because this will be a significant change, Microsoft is sharing proposals for multiple API options. Design principles for the new API include:
- Use of parallel terminology with other well-known frameworks such as Scikit-Learn, TensorFlow, and Spark. Microsoft will try to be consistent in naming and concepts to make it easier for developers to understand ML.Net Core.
- Simple and concise ML scenarios.
- Enabling advanced ML scenarios not possible with the current
The new API will be strongly typed and be more flexible. It is based on concepts such as