Faut-il utiliser sklearn ou tensorflow pour les réseaux de neurones?

7

Je viens de commencer à apprendre les réseaux neuronaux pour l'apprentissage en profondeur à partir de CS231. J'essaie d'implémenter Neural Network en Python. J'envisage d'utiliser Tensorflow ou scikit-learn. Quels sont les avantages et les inconvénients de ces bibliothèques pour cette application?

Muaaz Arif
la source

Réponses:

11

Sklearn n'a pas beaucoup de support pour les réseaux de neurones profonds. Parmi les deux, comme vous êtes intéressé par le deep learning , choisissez tensorflow .

Cependant, je suggérerais d'aller avec keras , qui utilise tensorflow comme backend, mais offre une interface plus facile.

Djib2011
la source
4

Dans le cours cs231n, pour autant que je m'en souvienne, vous passez la plupart du temps à implémenter vous-même des réseaux de neurones en utilisant uniquement NumPy! ce fut définitivement une expérience d'apprentissage incroyable pour moi.

Après cela, dans les dernières missions, vous devez absolument regarder TensorFlow ( exemples ) ou Pytorch ( exemples ) pour construire des réseaux plus compliqués. Ces cadres ont été construits par des gens comme ceux qui créent des cours comme CS231n - des chercheurs et des experts de l'industrie.

Le module de réseau neuronal SciKit Learn se compose de réseaux à action directe pour la classification ou la régression, mais rien de plus sophistiqué, comme les réseaux convolutionnels (CNN), les réseaux récurrents (RNN) ou d'autres composants plus exotiques, tels que des fonctions d'activation distinctes.

Je suis d'accord avec Djib2011, que Keras est une excellente alternative pour commencer - et vous permettra de choisir entre TensorFlow, CNTK ou Theano comme backend. Keras est une belle enveloppe uniforme autour des trois cadres monstres, alors laissez-vous mettre les choses en place très rapidement. Voici une comparaison relativement récente et utile de Keras avec Pytorch

Une fois que vous êtes familiarisé avec un outil comme Keras, il sera plus rapide de l'utiliser que les offres simples de SciKit Learn.


Je sais que vous n'avez pas posé de questions sur PyTorch, mais j'ai pensé le mentionner, car l'un des créateurs originaux de CS231n, Andrej Karpathy, dit que c'est le meilleur framework ( source 1 , source 2 ).

n1k31t4
la source
Alors que nous parlons de Pytorch: il est bien au-dessus des autres frameworks en ce qui concerne les réseaux récurrents de longueur variable
Evpok
@Evpok - Nous devrions probablement mentionner également que Tensorflow prend désormais en charge les réseaux dynamiques en utilisant son tf.eagerapi, qui est comparable à PyTorch.
n1k31t4