Jak biblioteka do uczenia maszynowego najlepsza pod Jave ?

Jak biblioteka do uczenia maszynowego najlepsza pod Jave ?
Dev007
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 169
0

Jak biblioteka do uczenia maszynowego najlepsza pod Jave ?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5068
4

Na pewno chodzi Ci o Javę? Bo,szczerze, nie spotkałem się z ML - em w Javie.

Dev007
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 169
0

Tak wiem że jest kilka bibliotek między innymi Deeplearning4j czy Weka

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
0

To że się da nie znaczy że się powinno. Radzę zmienić język. To już C# ma lepsze chyba wsparcie dla ML z ML.NET ale też nie polecam.
Jak się upierasz przy javie to wybierz dowolną bibliotekę - i tak wsparcie będzie relatywnie zerowe.

GO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 358
0

@Dev007 a co chcesz zrobić?

Typowe ML algorytmy są banalne i jeśli JIT javy potrafi w wektorowe operacje CPU + do tego programista dobrze zarządził pamięcią czyli dostęp do cache jest nie randomowy tzn. jak dane leżą w danym miejscu to bierze conajmniej całą linie cache, a nie po bajcie z każdego, to już trudniej żeby kompilator zoptymalizował, to zależy jak przeprowadzane jest mnożenie macierzy.

W JNI można bindy C++ pisać, to jak w ruście prawie wszystko z C/C++ zbindowali, a tylko w javie jest tak mało bindów, bez problemu pójdzie uruchomić dowolny framework, pytorch, tensorflow za pomocą niego, ale też na javie na pewno działa ONNX.
To co podałeś to też jakaś pewnie w miarę dobra biblioteka, nie wiem jak działa.

Na pewno java wspiera bindingi do obsługi ONNX, to jest taki popularny format, open neural network exchange.

Do projektowania od zera i uczenia, to mało bindów nawet zrobione, a taki pytorch bez problemu by się zbindowało, wiadomo jak pod każdą architekturę, system to gorzej, bo pod androidem nie wiem czy by tak łatwo poszło wszystko z uwagi na ilość narzędzi potrzebnych, taki pytorch waży ponad 2GB.

Na pewno są jakieś mniejsze biblioteki dostępne do tego, no chyba że java to tylko spring i same CRUDY, ale na pewno też są programiści co używają tego do czegoś innego.

DY
  • Rejestracja: dni
  • Ostatnio: dni
0

Polecam https://www.heatonresearch.com/encog/
Biblioteka ma zbiór klasycznych algorytmów które sobie można względnie szybko wypróbować. Jeżeli chodzi Ci o coś bardziej "nowego" tj. jakiś deep learning itd. to tak jak piszą koledzy wyżej lepiej zmienić język/technologie na Python-a najlepiej.

Dev007
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 169
0

Jeśli będzie to większy projekt który będzie wpsółpracował z innymi aplikacjami to Python będzie lepszym rozwiązaniem? Sam nie maiłęm doczynienia nigdy z Pythonem ale wiem że Java jest jezykiem stabilnym i skalowalnym dlatego jest uzywana do dużyuch projektów. Czy w AI/ML będzie inaczej i faktycznie lepiej skorzystać z Pythona?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5068
1

Python też jest skalowalny ;) ale do rzeczy, łatwiej będzie się nauczyć Pythona, niż robić to w Javie; może znajdziesz nawet gotowe rozwiązania.

Dev007
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 169
0

Dzięki za pomoc

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.