Hacker News new | ask | show | jobs
by startupdiscuss 2742 days ago
Sounds like you can get the results of a premade and trained TF model, but you can't build your own model or train it.
3 comments

Microsoft's deep learning "train/inference" framework is CNTK, which exists alongside ML.NET (although as it's sorely lagging other deep learning frameworks and I'm convinced it's not a priority for Microsoft, they've basically given up on it).

I think the target use case for ML.NET is really putting existing machine learning models into production in .NET. That's not limited to deep learning (it supports "traditional" ML models like logistic regression out of the box), but a first-party wrapper for tensorflow models is useful (which previously required vectorizing everything by hand and passing to TensorflowSharp)

Training vanilla models is "nice to have" but the real value is in putting trained models into production.

Generally speaking, the ML.NET API still needs a lot of work. I think they're partway through switching from a "LearningPipeline" API to a "Data/Transformer/Estimator" API, but some of the documentation refer to the former, some to the latter, some new methods still require legacy classes, the naming conventions aren't clear and not all of it is strongly-typed so you won't know until runtime whether you've passed the correct Transform/Estimator, on the whole it's a bit confusing.

That being said, it still hasn't hit 1.0, so I think the team is aware that the API needs further work. If they standardize 1.0 on the Data/Transformer/Estimator, blow away the legacy classes and update the documentation, it will be a pretty nice framework for production.

> the target use case for ML.NET is really putting existing machine learning models into production in .NET.

this should be exactly the first sentence in the git repository. to confirm the original commenter: this API is mostly for deploying networks, not so much for training/developing new models etc

You can definitely train your own models too...samples at https://github.com/dotnet/machinelearning-samples
I think you and startupdiscus are using two different notions of "my own model". I think by "my own model" you mean that I can use my own data to train a pre-existing models that is built into ML.net. Typically, that's not quite what "my model" means. Say I come up with a completely new learning to rank algorithm, or I fancy a new one that I saw in one of the ML conferences. Now if I were to build that with ML.net that would be "my model" according to startupdiscuss and many others.

In startupdiscuss' sense, ML.net would allow building own models if it offers building-blocks, abstractions, and other facilities, for examples, vectors, matrices, tensors, linear algebraic operations, computation-graph, etc that allow building them.