Elegir entre TensorFlow o Theano como backend para Keras

20

Keras admite TensorFlow y Theano como backend: ¿cuáles son las ventajas y desventajas de elegir uno versus el otro, además del hecho de que actualmente no todas las operaciones se implementan con el backend TensorFlow?

Franck Dernoncourt
fuente
44
Volviendo a esto. Creo que cambiaré mi opinión hoy: D
Dawny33
@ Dawny33 gracias. Esperaré la respuesta actualizada :-)
Franck Dernoncourt

Respuestas:

9

Si me dieran la opción, iría con Theano .

Razones:

  • Implementaciones y API de RNN de última generación , que desafortunadamente TensorFlow no posee, y tiene un largo camino por recorrer . Y en un dominio donde los RNN son la moda, Theano tiene una gran ventaja allí.
  • Muy amplia gama de implementaciones . TensorFlow tiene un largo camino por recorrer. Se han realizado muchos modelos ML recientes con la ayuda de Theano, por lo que es algo así como un estándar cuando se trata de redes neuronales.
  • Bucle optimizado y mejorado : el escaneo de Theano es una forma maravillosa de bucle en redes neuronales, que utiliza el impresionante marco de reducción de mapas. Pero estoy bastante seguro de que TensorFlow mejoraría en esto, ya que su creador Jeff Dean es el padre de Map Reduce. Sin embargo, a partir de ahora; es Theano
  • Gran ventaja cuando se trata de análisis de video.

Sin embargo, TensorFlow admite las interfaces cpp y Python, lo que podría ser una ventaja con la comunidad cpp. Pero, cuando se trata de ML y productos de ciencia de datos, Python ha sido el estándar, por lo que no sería una gran ventaja de IMO.

Pero, la implementación del modelo y la facilidad de uso en la producción es donde TensorFlow tiene la verdadera ventaja. Como usa Eigen para una implementación mejorada y fácil, sería un placer para los ingenieros. Si se vuelve compatible con Windows, verá una gran migración. Pero, me he acostumbrado a la sobrecarga de Python, puedo esperar hasta que se vuelva más pulido.

Entonces, Theano por ahora. Felizmente puedo esperar a que TensorFlow se ponga al día.

Si está implementando redes neuronales de complejidad simple a promedio, vaya con Tensorflow. Si es un aprendizaje profundo, entonces Theano.

Dawny33
fuente
1
Dadas las mejoras a TensorFlow en los últimos 1,5 años, ¿ahora tiene una opinión diferente?
Seanny123
1
@ Seanny123, seguro que sí. No estaba obteniendo el tiempo para dejarlo como respuesta: D. Escribiré en algún momento pronto :). [PD no relacionado: Checkout Pytorch también]
Dawny33
8

Se anunció el 28/09/2017 que Theano se suspenderá:

Desde https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY (Yoshua Bengio):

Después de casi diez años de desarrollo, lamentamos anunciar que pondremos fin a nuestro desarrollo de Theano después de la versión 1.0, que vence en las próximas semanas. Continuaremos con un mantenimiento mínimo para que siga funcionando durante un año, pero dejaremos de implementar activamente nuevas funciones. Theano continuará estando disponible después, según nuestro compromiso con el software de código abierto, pero MILA no se compromete a pasar tiempo en mantenimiento o soporte después de ese período de tiempo.

Entonces TensorFlow es una mejor opción.

Franck Dernoncourt
fuente