¿Debería usar sklearn o tensorflow para redes neuronales?

7

Acabo de comenzar a aprender Redes neuronales para el aprendizaje profundo de cs231. Estoy tratando de implementar Neural Network en Python. Estoy mirando el uso de Tensorflow o scikit-learn. ¿Cuáles son algunas de las ventajas y desventajas de estas bibliotecas para esta aplicación?

Muaaz Arif
fuente

Respuestas:

11

Sklearn no tiene mucho soporte para redes neuronales profundas. Entre los dos, ya que está interesado en el aprendizaje profundo , elija el flujo de tensor .

Sin embargo, sugeriría ir con keras , que usa tensorflow como back-end, pero ofrece una interfaz más fácil.

Djib2011
fuente
4

En el curso cs231n, por lo que recuerdo, ¡pasas la mayor parte del tiempo implementando redes neuronales tú mismo usando nada más que NumPy! definitivamente fue una experiencia de aprendizaje increíble para mí.

Después de eso, en las últimas asignaciones, definitivamente debe mirar TensorFlow ( ejemplos ) o Pytorch ( ejemplos ) para construir redes más complicadas. Estos marcos fueron construidos por personas como los que crean cursos como CS231n, investigadores y expertos de la industria.

El módulo de red neuronal SciKit Learn consta de redes de retroalimentación para clasificación o regresión, pero nada más elegante, como redes convolucionales (CNN), redes recurrentes (RNN) u otros componentes más exóticos, como funciones de activación separadas.

Estoy de acuerdo con Djib2011, que Keras es una gran alternativa para comenzar, y le permitirá elegir entre TensorFlow, CNTK o Theano como back-end. Keras es un buen envoltorio uniforme para los tres marcos de monstruos, así que vamos a poner las cosas en marcha muy rápidamente. Aquí hay una comparación reletivamente reciente y útil de Keras con Pytorch

Una vez que esté familiarizado con una herramienta como Keras, será más rápido usarla que las simples ofertas en SciKit Learn.


Sé que no preguntaste sobre PyTorch, pero pensé en mencionarlo, ya que uno de los creadores originales de CS231n, Andrej Karpathy, dice que es el mejor marco ( fuente 1 , fuente 2 ).

n1k31t4
fuente
Mientras hablamos de Pytorch: está muy por encima de otros marcos cuando se trata de redes recurrentes de longitud variable
Evpok
@Evpok: probablemente también deberíamos mencionar que Tensorflow ahora admite redes dinámicas utilizando su tf.eagerapi, que es comparable a PyTorch.
n1k31t4