Como marco, ¿recomienda Apache MXNet, TensorFlow, Caffe o Caffe2?

Cada mes aproximadamente, esta pregunta (más o menos) aparece en Quora o r / machinelearning y mi respuesta es siempre la misma que antes.

Depende de lo que quieras hacer.

Como simplificación:

  • TensorFlow: el factor de facto para la investigación en aprendizaje profundo hoy en día. Si necesita flexibilidad para modelos más exóticos (incluso en producción) o si planea investigar. Ofrece la mayor flexibilidad debido a su formato de gráfico computacional. También tiene la comunidad más grande de lejos y, posteriormente, muchas implementaciones en papel, lo que refuerza nuevamente su papel como el mejor (o uno de los mejores) marco para el trabajo de investigación. Las desventajas son que tiene una gran cantidad de código repetitivo que debes escribir para usarlo, lo que es infinitamente molesto.
  • MXNet: uno de mis favoritos personales para el código de producción, pero este es uno de los mejores marcos para la eficiencia computacional y el código de producción. Las ventajas para el uso de producción incluyen una alta eficiencia (¡hasta el punto en que se puede usar en CPU de teléfonos inteligentes!), Un alto grado de paralelismo (paraleliza bien en múltiples GPU y es el marco de elección de Amazon por esa razón) y la gran opción de memoria espejo. Sin embargo, está algo limitado en términos de flexibilidad, por lo que no lo recomiendo para la investigación.
  • Caffe: es un marco un poco más antiguo y está mostrando su antigüedad en ese sentido, pero sigue siendo muy bueno si planea hacer mucho trabajo en ConvNets, ya sea para producción o investigación (especialmente ingeniería de arquitectura). También es relativamente computacionalmente eficiente. Sin embargo, no es muy bueno con RNN / LSTM para producción o investigación.
  • Caffe2: el descendiente más nuevo de Caffe y está destinado a ser una versión ligera y computacionalmente eficiente de Caffe, más adecuada para la implementación de dispositivos de borde (es decir, la implementación de transferencia de estilo de Facebook).

Tl; DR: Depende, para la investigación, usar TensorFlow, para trabajo de producción en paralelo, usar MXNet, para trabajo de producción de ConvNet, usar Caffe2.