Czy należy używać sklearn lub tensorflow dla sieci neuronowych?

7

Właśnie zacząłem uczyć się sieci neuronowych do głębokiego uczenia się od cs231. Próbuję zaimplementować sieć neuronową w języku Python. Patrzę na używanie Tensorflow lub scikit-learn. Jakie są zalety i wady tych bibliotek dla tej aplikacji?

Muaaz Arif
źródło

Odpowiedzi:

11

Sklearn nie ma dużego wsparcia dla Deep Neural Networks. Spośród nich, ponieważ interesuje Cię głębokie uczenie się , wybierz tensorflow .

Sugerowałbym jednak korzystanie z keras , który wykorzystuje tensorflow jako backend, ale oferuje łatwiejszy interfejs.

Djib2011
źródło
4

O ile pamiętam, w kursie cs231n większość czasu spędzasz samodzielnie, wdrażając sieci neuronowe, używając tylko NumPy! było to dla mnie niesamowite doświadczenie edukacyjne.

Następnie, w ostatnich zadaniach, zdecydowanie musisz spojrzeć na TensorFlow ( przykłady ) lub Pytorch ( przykłady ), aby zbudować bardziej skomplikowane sieci. Ramy te zostały zbudowane przez ludzi takich jak osoby tworzące kursy, takie jak CS231n - naukowców i ekspertów branżowych.

SciKit Więcej neuronowych moduł sieciowy składa się z sieci zasilających w przód dla obu klasyfikacji lub regresji, ale nie hodowcy, takich jak sieci splotowych (CNNs), sieci nawracające (RNNs) lub inne składniki, bardziej egzotyczne, takie jak rozdzielenie funkcji aktywujących.

Zgadzam się z Djib2011, że Keras jest świetną alternatywą na początek - i pozwoli ci wybierać między TensorFlow, CNTK lub Theano jako backend. Keras to fajne, jednolite opakowanie dla wszystkich trzech szkieletów potworów, więc pozwól, aby wszystko zaczęło działać bardzo szybko. Oto bardzo aktualne i przydatne porównanie Keras z Pytorch

Po zaznajomieniu się z narzędziem takim jak Keras korzystanie z niego będzie szybsze niż proste oferty w SciKit Learn.


Wiem, że nie pytałeś o PyTorch, ale pomyślałem, że wspomnę o tym, ponieważ jeden z oryginalnych twórców CS231n, Andrej Karpathy, twierdzi, że jest to najlepszy framework ( źródło 1 , źródło 2 ).

n1k31t4
źródło
Podczas gdy mówimy o Pytorch: jest znacznie wyższy niż inne frameworki, jeśli chodzi o sieci rekurencyjne o zmiennej długości
Evpok
@Evpok - Prawdopodobnie powinniśmy również wspomnieć, że Tensorflow obsługuje teraz sieci dynamiczne za pomocą tf.eagerinterfejsu API, który jest porównywalny z PyTorch.
n1k31t4,