dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
9.01k stars 1.88k forks source link

Upgrade Tensorflow support >2.3 #6028

Open developervariety opened 2 years ago

developervariety commented 2 years ago

Is your feature request related to a problem? Please describe. I'm desktop environment is an iMac with M1 chip. I have been looking on how to build TensorFlow v2.3 so I could use it for image classification, but haven't had much luck. When building with a v2.5 libtensorflow I receive the following error message due to breaking changes after v2.3

Unable to find an entry point named 'TF_StringEncodedSize' in shared library 'tensorflow'

Describe the solution you'd like Upgrade TensorFlow support to v2.5+

Describe alternatives you've considered No alternatives really.

developervariety commented 2 years ago

TF_StringEncodedSize was removed, but implemented again in v2.5 from my understanding. Could also be found here in latest TensorFlow.NET

Possible solution would be to update TensorFlow.NET dependency to v0.40 and require Tensorflow v2.5.0

Update;

Tensorflow 2.6 has M1 support for training/prediction, but no GPU support just yet.

Daniel-Walther commented 2 years ago

I run into the same problem after upgrading to TensorFlow > 2.3.1. So I continue using version 2.3.1.

After changing my GPU from GeForce 1050 to GeForce RTX 3060 I got very slow and WRONG results. I descripted that here. It seems that TensorFlow <=2.3 (or ML.NET <=1.7) had some Problems with newer GPUs.

Since Microsoft.ML 1.7 runs only with SciSharp.Tensorflow.***-GPU 2.3.1 which runs only with CUDA 10.1 I'm looking forward for the next build of Microsoft.ML which is hopefully runs with a newer SciSharp version (and so with a newer CUDA version).

michaelgsharp commented 2 years ago

I can make the upgrade and see what happens to the tests. If everything passes this is an easy fix to get in. If tests fail it will take more time and we'll have to look at priorities.

PMGruber commented 1 year ago

Similar topic from beginning of this year (just on Windows) https://github.com/dotnet/machinelearning/issues/6040

I would also appreciate an upgrade to a newer version of TensorFlow. Not long ago TensorFlow 2.10 was released, so ML.Net is 7 versions behind...

What is planned for TensorFlow in general? Any chance that there will be more frequent updates in future? Since we are TensorFlow based this is a critical point for us to stay with ML.Net

Please don't get me wrong. I know this is a lot of work and you made a great framework. I like it very much. I just gather some information for internal decisions.

flake-neural commented 1 year ago

I second this

Similar topic from beginning of this year (just on Windows) https://github.com/dotnet/machinelearning/issues/6040

I would also appreciate an upgrade to a newer version of TensorFlow. Not long ago TensorFlow 2.10 was released, so ML.Net is 7 versions behind...

What is planned for TensorFlow in general? Any chance that there will be more frequent updates in future? Since we are TensorFlow based this is a critical point for us to stay with ML.Net

Please don't get me wrong. I know this is a lot of work and you made a great framework. I like it very much. I just gather some information for internal decisions.

I second this, I am also waiting for an updated Tensorflow. It is important to know what the long-term plans are, if ML.net is being abandoned, we need to find a new platform.

michaelgsharp commented 1 year ago

ML.NET is not being abandoned. We have been working on adding in deep learning support using TorchSharp and are planning another release of ML.NET the beginning of November. @luisquintanilla feel free to share any roadmaps or anything else you want to share.

ssccinng commented 1 year ago

ML.NET is not being abandoned. We have been working on adding in deep learning support using TorchSharp and are planning another release of ML.NET the beginning of November. @luisquintanilla feel free to share any roadmaps or anything else you want to share.

How long does it take to support cuda11? I also want to test this on the new gpu

xe7485 commented 1 year ago

It has been years now and even nVidia 30 series is still not supported, 40 series is not supported... These are mainstream GPUs now.

This is something that should have been even available in first v3 preview.

xumix commented 1 year ago

ML.NET is not being abandoned.

@michaelgsharp Well, it does not look like it is not abandoned or in life support mode

raffaeler commented 6 months ago

The main problem on my side is that I must always use the latest libraries for CUDA and Tensorflow because of other projects and tools requiring to stay updated. If ML.NET cannot stay in sync, it is automatically out of the game and revert to python. Sadly, there are no alternatives.

My question for the team is: what priority do you have to keep in-sync ML.NET with the latest cuda/tensorflow libraries? If this is not a goal, please let us know because we are currently in a limbo. Thank you

mfiferna commented 1 month ago

Are there any updates on this? @michaelgsharp

I'm a bit surprised that this is not a priority. Not being able to use the prevalent GPUs sucks.