SciSharp i ML.NET

0

Czy ktoś na co dzień w .NET korzysta z narzędzi zebranych jako SciSharp? Lub ML.NET? Głównie pierwsze są to wrapery dla Python-owych libek, choć Neuralnetwork.NET może być tu wyjątkiem. Drugi, jak mnie pamięć nie myli, to biblioteka dla prostych zadań ML, opcjonalnie korzystania z wytrenowanych już modeli NN.

Docelowo chciałbym korzystać w .NET z NN tak jak to się robi z Python-em. Kilka lat temu był duży niedobór narzędzi, opcji budowania modeli, dokumentacji, wiele projektów open-source nie było rozwijanych, nie działała, lub nie była kompatybilna z nowszymi wersjami TF.

Ciekaw jestem czy coś się zmieniło i jak wygląda Wasze doświadczenie ze SciSharp i ML.NET.

2

Jeżeli chcesz korzystać z ML w C# to z tego co kojarzę dobrym rozwiązaniem jest ONNX – pakuje się modele do formatu ONNX i potem można je sobie uruchamiać przez ML.NET, który dostarcza ONNX runtime. Ogólnie to ML w C# to raczej nisza – sam użyłem ML.NET i jego AutoML aby sobie zbudować prosty klasyfikator i zadziałało idealnie, teraz z kolei używam sobie trochę z pakietu SciSharp LlamaSharp i przede wszystkim semantic-kernel oraz kernel-memory i je absolutnie polecam... ale jak trzeba użyć czegoś bardziej złożonego to najczęściej biorę Pythonowe paczki i wystawiam sobie REST API ;)

https://old.reddit.com/r/dotnet/comments/1cmenho/is_mlnet_relevant/

0

@Ktos: Zgadzam się, trenowanie modeli w Python + TF było i może być dalej najpewniejszym rozwiązaniem jak chodzi o NN i DL w .NET.

Choć miałem nadzieję że będzie to pieśń minionych czasów i zdążyło coś się zmienić w ML.NET lub innych takich.

Bądź co bądź, gdzieś czytałem o możliwości instalowania dodatkowych NuGet-ów dla NN i DL. Mam na liście to-do do ogarnięcia i przetestowania, pewnie tu wrzucę jeszcze spostrzeżenia jak już dopłynę do ew. ściany.

2

Skończyłem swój research w temacie DL i NN w .NET, ku mojemu zaskoczeniu udało mi się znaleźć biblioteki dzięki którym można tworzyć sieci neuronowe mniej lub bardziej złożone. Skupiałem się głównie na modelach do anaizy time series. Oto dostępne narzędzia:

  • TensorFlow.NET - jest to ciągle rozwijany wraper dla Pythonowego TF, notatki własne: NN, continued, including LSTM, tutoriale/przykłady.
  • SynapseML - jest to Microsoftowe rozwiązanie, konfiguracja okazała się zbyt trudna żeby móc się połączyć z API, może kiedyś wrócę do tego narzędzia, notatki własne: NN, continued, problematic environment config, virtual machine.
  • CNTK - porzucone dziecko Microsoftu (najlewniej na rzecz SynapseML) z dość szerokimi możliwościami, notatki własne: NN (including RNN) including LSTM, DISCONTINUED, tutoriale/przykłady.
  • SharpLearning - narzędzie do tworzenia modeli ML i NN, z nieco ograniczonymi możliwościami, notatki własne: NN (including RNN), but no LSTM, just Dense layers, DISCONTINUED.
  • Accord.NET - wiekowe choć fajne narzędzie do prostych modeli ML, notatki własne: ML, DISCONTINUED.
  • ML.NET - chyba najbardziej znane dziecko Microsoftu umiejące w ML, do tworzenia prostych modeli, notatki własne: ML, continued, tutoriale/przykłady.
  • ONNX - pozwala wykorzystać pre-trenowane modele w ML.NET, nie testowałem

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.