¿Cuál es la mejor biblioteca de aprendizaje profundo en la etapa actual para trabajar en grandes datos? ¿Cuáles son algunas alternativas para las bibliotecas a gran escala?

Hay tres características a tener en cuenta para tener éxito en la capacitación de un NN de aprendizaje profundo (DNN) en “datos grandes”.

(1) Soporte de GPU optimizado
(2) Algoritmos DL de última generación
(3) Soporte distribuido

Aquí está mi lista clasificada de marcos DNN de código abierto. La presencia del número indica el soporte mejor clasificado para dicha función.

# 1 Torch (1) (2): utilizado por Google DeepMind y FaceBook
# 2 Theano (1) (2) – Universidad de Montreal, algoritmos innovadores de la investigación
# 3 Caffe (1) (2) – Líder en redes de convolución, modelos entrenados
# 4 Neon (1) – CUDA altamente optimizado, startup bien financiada.
# 5 TensorFlow (1) (2) (3?) – Desplegado en Google
# 6 Deeplearning4J (1) (2) (3) – Muy activo
# 7 H2O (2) (3): inicio sólido con muchos fondos.
# 8 mxnet (1) (2) (3) – Muy activo.
# 9 Veles (1) (3) – Samsung
# 10 Spark MLLib (3) – Módulo de aprendizaje profundo recién lanzado

Mención de honor: Kaldi (2)

Nota 1: Los marcos basados ​​en Theano (es decir, Keras, Lasaña, Bloques, etc.) no se enumeran aquí y deben considerarse parte del ecosistema de los padres.

Nota 2: La clasificación es subjetiva y puede cambiar con el tiempo. Abierto a comentarios y sugerencias. Lista compilada en noviembre de 2015

Nota 3: la clasificación incluye solo los 10 marcos principales

Un área donde el brillo TensorFlow está en la informática distribuida, y cuando comienza a trabajar con grandes conjuntos de datos, la distribución de su entrenamiento es una consideración seria.

El siguiente documento lo llevará por el camino correcto en cuanto a algunas de las consideraciones que deben tenerse en cuenta al crear un sistema distribuido optimizado para el rendimiento.

Modelos de alto rendimiento | TensorFlow

Recuerde que su sistema es tan rápido como la parte más lenta (también conocido como cuello de botella): sus nuevas GPUs solo pueden procesar datos tan rápido como su CPU puede alimentarlos, preste especial atención a su canal de entrada que a menudo se descuida.

Use Python Theano, admite entrenamiento de modelo basado en GPU y optimización automática de código en la evaluación de expresiones matemáticas
Más detalles aquí
Bienvenido – Documentación de Theano 0.6

Creo que no se trata de datos sino del propósito.

Si te gusta investigar o al menos quedarte con el framework Python, Pytorch es la mejor biblioteca. Muy rápido, flexible, fácil de depurar, bien estructurado. Es la biblioteca de mis sueños para ser franco.

Si desea implementar su modelo en una plataforma (teléfono móvil, placa, etc.) Caffe o incluso el nuevo hermano Caffe2. Está listo para implementarse con la selección de back-end automática lista para usar basada en la plataforma objetivo.

Si quieres tener todo en Python. Luego Tensorflow o Mxnet. Debo advertirle que estas bibliotecas se sienten como escribir C ++ en sintaxis de Python y tienen una curva de aprendizaje realmente empinada.

Si te gusta investigar pero en otro idioma. Opte por Mxnet, que yo sepa, la mejor biblioteca en términos de portabilidad a muchos idiomas como Scala, R, JavaScript, etc.

Pero diría que la mejor biblioteca es la que mejor conoce si no tiene una preocupación particular.

Puedes dar una plataforma distribuida de aprendizaje profundo un intento. Creo que hacen algún tipo de técnica de promedio de modelos utilizando un marco de computación distribuido.

Creo que TensorFlow y Keras son dos mejores bibliotecas para trabajar en grandes datos.

TensorFlow puede manejar datos grandes de tres maneras:

  1. Es compatible con GPU y CUDA, para que pueda ejecutar el aprendizaje profundo con grandes datos de entrenamiento con un buen rendimiento.
  2. admite la implementación distribuida, lo que significa que puede implementar y ejecutar TensorFlow en varios servidores host utilizando Spark.
  3. Puede encontrar muchos códigos de ejemplo para TensorFlow en Internet.

Recomiendo Keras también porque es bastante más fácil escribir código que TensorFlow. Dado que Keras es un contenedor para TensorFlow, escribir código para Keras simplemente funciona en el tiempo de ejecución de TensorFlow.

Por lo general, todas las bibliotecas de aprendizaje profundo admiten capacitación basada en múltiples CPU o GPU para trabajar con grandes conjuntos de datos. Por ejemplo, Theano, Caffe, Deeplearning4j.
Vea esta evaluación comparativa de rendimiento de Caffe: http://caffe.berkeleyvision.org/

TensorFlow es uno; otros generalmente están hechos a medida. H20 y Darch tienen una escalabilidad bastante buena en R para el tipo de problemas que encuentro, pero probablemente no manejarían el problema de memoria para almacenar imágenes grandes. Intente buscar en Python Theano o TensorFlow, ya que esto debería resolver algunos de los problemas de memoria.

pruebe deeplearning4j: aprendizaje profundo distribuido y de código abierto para la JVM
funciona muy bien con Hadoop

More Interesting

¿Funcionaría la búsqueda de 'colocaciones' de orden superior?

¿Cuáles son los beneficios de usar unidades lineales rectificadas frente a la función de activación sigmoidea típica?

¿Cuál es la forma correcta de encapsular la creación y capacitación del modelo Tensorflow en una clase?

¿Cuál es la diferencia entre PyTorch, Caffe y TensorFlow?

¿Cómo se pueden clasificar / resumir los diversos algoritmos de aprendizaje automático de acuerdo con los problemas que resuelven?

¿Un doctorado en aprendizaje automático centrado en un tema que no sea el aprendizaje profundo seguirá siendo comercializable (en la industria) en 2020?

¿Qué algoritmos de optimización son buenos candidatos para la paralelización con MapReduce?

¿Las estadísticas necesitan un cambio de marca en respuesta a la ciencia de datos y el aprendizaje automático, que están superando las estadísticas en términos de relevancia? ¿Por qué o por qué no?

¿Por qué la regresión logística se considera robusta a los valores atípicos en comparación con un método de mínimos cuadrados?

¿Cuál es el mejor método de selección de características cuando los datos del tren tienen más características que el número de puntos de datos? ¿Asumir que los datos son muy grandes?

¿Me puede explicar sobre el aprendizaje automático? ¿Cuál es el alcance del aprendizaje automático?

¿Por qué es tan difícil la IA? ¿Por qué todavía no hemos construido una máquina de IA?

¿Cuáles son las buenas heurísticas para elegir el tamaño de un lote en el entrenamiento de la red neuronal?

¿Por qué la probabilidad condicional es más poderosa que la probabilidad conjunta en un nivel intuitivo?

¿Cuál es la naturaleza de la red neuronal multicapa en el aprendizaje Deep Q?