Deeplearning4j puede ser el mejor marco de aprendizaje profundo para Spark, ya que se basa en un lenguaje JVM, como el propio Spark, para integraciones y fue construido con la computación distribuida en mente. Deeplearning4j tiene varios módulos Scala.
Los marcos como Deeplearning4j usan Spark como una capa de acceso a datos para orquestar múltiples subprocesos de host, mientras confían en otras bibliotecas para realizar las operaciones de matriz grande. Bibliotecas como ND4S o matrices n-dimensionales para Scala:
deeplearning4j / nd4s
- ¿Es necesario un conjunto de validación si no se realiza un ajuste de hiperparámetro?
- ¿Cuáles son algunas estructuras de datos esenciales y conocimiento de algoritmos necesarios para estudiar ciencia de datos?
- ¿Cuál es la mejor manera (habitual) de combinar los puntajes tf-idf para cada documento que un usuario ha visto al crear un perfil para este usuario?
- ¿Puedo predecir el precio de las acciones usando el aprendizaje automático en Python?
- ¿Cuál es la diferencia entre Deconvolución, Upsampling, Unpooling y Convolutional Sparse Coding?
El proyecto DL4J también incluye un contenedor Scala inspirado en las API de Keras y Torch:
deeplearning4j / ScalNet
DL4J usa Spark para ETL rápido, no computación. Se integra con Spark y hace que se ejecute en múltiples GPU o CPU. Para tareas de procesamiento de imágenes no triviales, el rendimiento es igual a Caffe, con la ventaja adicional de que DL4J es una biblioteca de aprendizaje profundo de propósito general, construida de manera modular. Es decir, con DL4J, puede procesar series de tiempo, texto o sonido, así como imágenes. Aquí hay un par de enlaces sobre cómo DL4J hace que Spark funcione y cómo funciona con GPU distribuidas:
Deeplearning4j en Spark
Deeplearning4j con GPU
DL4J es la única biblioteca de DL certificada en Spark (a través de CDH) que viene con soporte comercial. (Divulgación: soy colaborador del proyecto). También es la única biblioteca DL escrita para la JVM. El resto está enfocado en Python.