Jaka biblioteka do SI / ML z uczeniem bez nauczyciela?

0

Cześć!
Zainteresowałem się sztuczną inteligencją w wariancie nauki bez nauczyciela jedynie w oparciu o parametry na wejściu i rezultat wyjściowy.
Czy TensorFlow się do tego nada?
Czy TensorFlow wymaga wysyłania czegoś na serwery Google?
Jakie dobre książki do SI / ML byście polecili do nauki pod kątem mojego zainteresowania? Czyli uczenia bez nauczyciela i użycia gotowej biblioteki C++.

Dzięki! Szacun! i Pozdro!

3

Tensor flow jak najbardziej się nada (nie ma potrzeby wysyłania czegokolwiek do googla). Pytanie czy c++ jest odpowiednim do tego narzędziem. Osobiście polecałbym pythona do takich zastosowań: wiele rzeczy można zrobić sprawniej i znacznie więcej materiałów znajdziesz dla tf+python. Z książkami to trzeba uważać, zwłaszcza jeśli chodzi o takie frameworki jak tf, ponieważ to się dynamicznie zmienia z wersji na wersję (sam się na to kiedyś nadziałem). Są uczelnie, które udostępniają za darmo całe kursy do obejrzenia z uczenia maszynowego, więc może znajdziesz coś co Ci pomoże (np. Stanford udostępnia takie zajęcia)

0

A czy hype na ML/AI już nie umarł?

1

Dlaczego c++ jest nie tak dobry do ml?

*Nie ma tylu przykładów do c++ jak np. pythona
*Tensorflow to średni stopień abstrakcji a np. keras nie ma w c++ jako wyższej abstrakcji nad tf.
*C++ to taki dość skomplikowany język(chyba że ktoś będzie używał de facto tylko C). W takich pythonach szybko się prototypuje, jest pełno bibliotek itd.
*Już nawet chyba C# i ML.Net będzie lepszy.
*Ja przy swoich ML używam pythona dla procesu w którym odbywa się wykrywanie/uczenie. Resztę pisze w c++ tzn. frontend dla wykrywania(zarzadzanie aplikacją), jakieś zapisywanie ustawień itd. Tu c++ lepiej się sprawdza jak python(pamiętaj że python ze względu na konstrukcje ma problem z wielowątkowością).

Podsumowując lepiej używać tu pythona do głównej części programu a c++ ewentualnie do reszty.

0

Jestem właśnie po procesie integracji modeli Tensorflowa do istniejącej aplikacji C++. Połączenie TensorFlow i C++ to moim zdaniem porażka.

Przede wszystkim, TensorFlow nie dostarcza paczek debianowych. zatem trzeba go sobie zbudować samemu.
Po drugie TF nie wspiera CMake'a - budowanie bibliotek wymaga jakiegoś beznadziejnego tool'a Bazel. Owszem istnieją jakieś niezależne projekty portujące TensorFlow do Cmake'a, ale miały pewne ograniczenia, które powodowały, że nie mogłem ich użyć.
Po trzecie wersja Bazela zależy od wersji TensorFlowa, którą chcemy budować. A ta z kolei zależy od wersji CUDA (oczywiście jeśli budujemy z CUDA, co w profesjonalnych projektach zazwyczaj ma miejsce).
Po czwarte, Tensorflow nie potrafi użyć istniejących zależności w projekcie, tylko dociąga własne. W efekcie, mam teraz w projekcie 2 wersje różne wersje Eigena. Dobrze, że to tylko biblioteka nagłówkowa, bo jakby się to miało linkować, to byłby niezły syf.
Po piąte, zarządzanie zawartością biblioteki to żart. Bazel generuje po kokardę rzeczy, które mają się znaleźć w bibliotece, a jestem przekonany że są niepotrzebne. Do tego trzeba dorzucić jakieś katalogi bezpośrednio z repo.

Jeśli miałbym coś komuś polecać, to trenować modele w jakichś narzędziach pytonowych, a potem skorzystać z gotowego serwera inferencyjnego, np. Nvidia Triton.

0

a ma ktoś porównanie R i Pythona ?

1
revcorey napisał(a):

Dlaczego c++ jest nie tak dobry do ml?

Cały ciężar obliczeń w ML leży po stronie biblioteki. Cała reszta zajmuje ~1% czasu CPU mocy obliczeniowej.
To niweluję główną (jedyną) zaletę C++ czyli szybkość kodu wynikowego.
W python kod piszę się szybciej, jest bardziej czytelny, a w tej sytuacji jego powolność nie ma znaczenia.

0
GutekSan napisał(a):

Jestem właśnie po procesie integracji modeli Tensorflowa do istniejącej aplikacji C++. Połączenie TensorFlow i C++ to moim zdaniem porażka.

OK! Rozumiem. Czy po swoich dotychczasowych doświadczeniach poleciłbyś coś innego dla C++?
Ja ogólnie wiem o co chodzi ze SI jednak na studiach inżynierskich nie miałem SI (w PL uważa się, że to poziom magisterski).
Czy mógłbyś nakreślić w skrócie ścieżkę rozwojową jaką należy przebyć by swobodnie posługiwać się SI?
Chodzi mi o konieczną lekturę, aparat matematyczny i zalecane ćwiczenia.
Co uważasz za konieczne, a co za zalecane? W procesie opanowywania SI.
Przypominam, że zależy mi na uczeniu bez nauczyciela (zarówno ja tak chce się uczyć jak i sztuczne sieci neuronowe jakie mam zamiar używać).

2

Tu coś było:
Wybór bibliotek do AI.

1
Energo Koder napisał(a):

OK! Rozumiem. Czy po swoich dotychczasowych doświadczeniach poleciłbyś coś innego dla C++?

Jeśli chodzi o C++ u nas do inferencji używa się głównie TensorRT. Ostatnio też rozważamy przejście na nvidiowego Tritona - w ten sposób problem języka znika, całe AI masz zamknięte w zewnętrznym serwisie. Pozostaje kwestia stworzenia modeli w formacie obsługiwanym przez Tritona.
Do prostszych zastosowań związanych z sieciami, można chyba użyć tego co oferuje opencv, wiem że tam jest biblioteka dnn.

1
GutekSan napisał(a):

Do prostszych zastosowań związanych z sieciami, można chyba użyć tego co oferuje opencv, wiem że tam jest biblioteka dnn.

Korzystałem w opencv z dnn'a i rzeczywiście jest to fajne rozwiązanie, ponieważ tworzy dodatkową warstwę abstrakcji na wiele różnych frameworków m.in dla tensorflowa i pytorcha. Problemem może być to, że nie zawsze da radę poprawnie wczytać model. Nie wiem jak to teraz wygląda, ale kilka miesięcy temu opencv nie wspierało w pełni tensorflowa2, więc też trzeba brać pod uwagę problemy tego typu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1