Sollte sklearn oder Tensorflow für neuronale Netze verwendet werden?

7

Ich habe gerade angefangen, Neuronale Netze für tiefes Lernen von cs231 zu lernen. Ich versuche, Neural Network in Python zu implementieren. Ich möchte Tensorflow oder Scikit-Learn verwenden. Was sind einige Vor- und Nachteile dieser Bibliotheken für diese Anwendung?

Muaaz Arif
quelle

Antworten:

11

Sklearn hat nicht viel Unterstützung für Deep Neural Networks. Wählen Sie unter den beiden, da Sie an tiefem Lernen interessiert sind , Tensorflow .

Ich würde jedoch empfehlen, sich für Keras zu entscheiden , das Tensorflow als Backend verwendet, aber eine einfachere Schnittstelle bietet.

Djib2011
quelle
4

Im cs231n-Kurs verbringen Sie, soweit ich mich erinnere, die meiste Zeit damit, neuronale Netze selbst zu implementieren, indem Sie nur NumPy verwenden! Das war definitiv eine erstaunliche Lernerfahrung für mich.

Danach müssen Sie in den letzten Aufgaben auf jeden Fall entweder TensorFlow ( Beispiele ) oder Pytorch ( Beispiele ) betrachten, um kompliziertere Netzwerke aufzubauen. Diese Frameworks wurden von Leuten wie denen erstellt, die Kurse wie CS231n - Forscher und Branchenexperten - erstellt haben.

Das neuronale SciKit Learn-Netzwerkmodul besteht aus Feed-Forward-Netzwerken für die Klassifizierung oder Regression, aber nichts ausgefalleneres wie Faltungsnetzwerke (CNNs), wiederkehrende Netzwerke (RNNs) oder andere exotischere Komponenten wie separate Aktivierungsfunktionen.

Ich stimme Djib2011 zu, dass Keras eine großartige Alternative für den Einstieg ist - und Sie können zwischen TensorFlow, CNTK oder Theano als Backend wählen. Keras ist eine schöne einheitliche Hülle für alle drei Monster-Frameworks. Lassen Sie uns also die Dinge sehr schnell zum Laufen bringen. Hier ist ein relativ neuer und nützlicher Vergleich von Keras mit Pytorch

Sobald Sie mit einem Tool wie Keras vertraut sind, können Sie es schneller verwenden als die einfachen Angebote in SciKit Learn.


Ich weiß, dass Sie nicht nach PyTorch gefragt haben, aber ich dachte, ich würde es erwähnen, da einer der ursprünglichen Entwickler von CS231n, Andrej Karpathy, sagt, es sei das beste Framework ( Quelle 1 , Quelle 2 ).

n1k31t4
quelle
Während wir über Pytorch sprechen: Es ist weit über anderen Frameworks, wenn es um wiederkehrende Netzwerke mit variabler Länge geht
Evpok
@Evpok - Wir sollten wahrscheinlich auch erwähnen, dass Tensorflow jetzt dynamische Netzwerke mit seiner tf.eagerAPI unterstützt, die mit PyTorch vergleichbar ist.
n1k31t4