¿Qué es mejor para el aprendizaje profundo: TensorFlow o Chainer?

TensorFlow

Google creó TensorFlow para reemplazar a Theano. Las dos bibliotecas son, de hecho, bastante similares. Algunos de los creadores de Theano, como Ian Goodfellow, crearon Tensorflow en Google antes de partir hacia OpenAI.

Positivos de TensorFlow

  • Python + Numpy
  • Abstracción de gráficos computacionales, como Theano
  • Tiempos de compilación más rápidos que Theano
  • Datos y paralelismo de modelos
  • TensorBoard para visualización

TensorFlow Negatives

  • Más lento que otros marcos
  • Mucho más “gordo” que Antorcha; mas magia
  • No hay muchos modelos entrenados
  • El gráfico computacional es Python puro, por lo tanto lento
  • Sin soporte comercial (el más grande)
  • Llega a Python para cargar cada nuevo lote de entrenamiento
  • No muy tolerable
  • La escritura dinámica es propensa a errores en grandes proyectos de software

Chainer

Chainer es un marco de red neuronal de código abierto con una API de Python, cuyo equipo central de desarrolladores trabaja en Preferred Networks, una startup de aprendizaje automático con sede en Tokio que atrae a sus ingenieros en gran parte de la Universidad de Tokio. Hasta el advenimiento de DyNet en CMU y PyTorch en Facebook, Chainer era el marco de red neuronal líder para gráficos de computación dinámicos, o redes que permitían la entrada de longitud variable, una característica popular para las tareas de PNL. Por sus propios puntos de referencia, Chainer es notablemente más rápido que otros frameworks orientados a Python, con TensorFlow el más lento de un grupo de prueba que incluye MxNet y CNTK.

Depende. Sin embargo, prefiero Tensorflow porque tiene muchos ejemplos de código. Bueno, acabo de usar chainer para la codificación LSTM hasta que se lanzó TensorFlow, así que no sé mucho sobre chainer.

Tensorflow

  1. Muchas muestras de código.
  2. El frontend de Keras habilita el estilo de programación similar a OOP
  3. Buen rendimiento de CPU y HPC.
  4. Soporte móvil
  5. Visualización

Chainer

  1. Mejor rendimiento de GPU y GPU que TensorFlow. (TensorFlow está optimizado para la arquitectura de TPU) Recientemente, Chainer se convirtió en el campeón mundial del rendimiento del centro de datos de GPU.
  2. Buen apoyo japonés.
  3. OOP como estilo de programación.

Tensorflow es la regla actualmente, de código abierto, buena documentación y muchos tutoriales, por lo que definitivamente gana el partido. Pero cuando se trata de la implementación para un principiante que comprende paso a paso los componentes básicos del aprendizaje profundo, la cuestión se refiere a la flexibilidad y al nivel de comprensión. Cuando trabajé en ambos marcos, lo que personalmente sentí es, permítanme tratar de explicar con un ejemplo, Aprender a conducir un automóvil

Chainer es como un “auto simple”, se adhiere al uso de un estilo de programación python muy básico y sencillo. Construye tus funciones personalizadas, el enfoque de sintaxis y sí definir por ejecución. Aprenderá a conducir un automóvil (comprender e implementar redes neuronales de una manera muy flexible), cuándo aplicar los descansos y todo eso.

Por otro lado, Tensorflow es sofisticado ‘el lujoso auto deportivo’ con su propio tablero y controles. Te encontrarás con sus paradigmas computacionales básicos, la interfaz de programación es un poco diferente. También tiene soporte para Android e iOS.

Déjame responderlo de manera diferente. Depende en cuanto a cuál es mejor. Si me preguntas incluso desde la perspectiva de la biblioteca de aprendizaje profundo optimizada basada en GPU, entonces diría que incluso tensorflow no es el líder. Pero ahora, cuando se trata de computación distribuida y CPU, sí, para los estudiantes, tensorflow es una biblioteca robusta y supongo que gran parte del desarrollo profesional también puede estar usando tensorflow. Pero déjenme decirles hasta ahora que en frambuesa pi, según mi experiencia, solo pude ejecutar chainer para el conjunto de datos mnist y me llevó 7 horas. Entonces, para un aficionado y alguien que quiere aprender Raspberry Pi Chainer puede ser una buena opción.

Bueno, si se trata de un software de código abierto respaldado y financiado por la empresa más versátil del mundo, creo que el tensorflow es difícil de superar en la escala como el mejor marco para las aplicaciones de aprendizaje automático / aprendizaje profundo. también ya que es compatible con todos los demás marcos (como keras) y se puede usar con herramientas de big data (como spark y hadoop) y especialmente allí la nueva versión 1.0 está eliminando casi toda la complejidad de la computación de tensor y otras cosas. así hasta ahora tensorflow es el líder por ahora.

More Interesting

¿Cuál es la diferencia entre redes neuronales y de creencias?

¿Cómo funcionan los bots de chat desde una perspectiva de Machine Learning?

¿Cómo se puede utilizar el aprendizaje profundo TensorFlow para la detección de anomalías?

¿En qué se diferencia el método de agrupamiento en el aprendizaje automático de disparar una consulta SQL 'select' para agrupar personas u objetos? ¿Cuáles son las diferencias y necesidades reales?

¿El apilamiento de modelos en el aprendizaje automático hace una gran diferencia en los resultados?

¿Cómo determinaría si el error de cuando ejecuta su algoritmo de aprendizaje automático es de alto sesgo o alta varianza (también conocido como corte o sobreajuste)?

Cómo calcular la ganancia de información para cada atributo si estoy diseñando un árbol clasificador de decisiones con nodos binarios en cada derrame

¿Cómo se puede comparar Big data con Machine Learning?

¿Cómo podemos estimar múltiples parámetros de un clasificador?

¿Para qué se puede utilizar el análisis de la marcha?

¿Cuáles son las ventajas de aprender Apache Spark?

Cómo obtener una posición de RA en el Grupo de Aprendizaje Automático de Microsoft Research India

¿Hay alguna anomalía inexplicable en la codificación de la computadora que pueda sugerir que las máquinas tienen alma?

¿Qué consejo le darías a alguien que acaba de comenzar el curso de Andrew Ng sobre aprendizaje automático?

¿Puede haber mejoras en el tiempo de ejecución al usar GPU para la red neuronal incluso si el conjunto de datos es de baja dimensión?