Deeplearning4j - Deeplearning4j

Eclipse Deeplearning4j
Autor (es) original (es) Alex D. Black, Adam Gibson, Vyacheslav Kokorin y Josh Patterson
Desarrollador (es) Kondiut KK y colaboradores
Versión de vista previa
1.0.0-beta7 / 13 de mayo de 2020 ; Hace 17 meses ( 13 de mayo de 2020 )
Repositorio
Escrito en Java , CUDA , C , C ++ ,
Sistema operativo Linux , macOS , Windows , Android , iOS
Plataforma CUDA , x86 , ARM , PowerPC
Disponible en inglés
Escribe Procesamiento del lenguaje natural , aprendizaje profundo , visión artificial , inteligencia artificial
Licencia Licencia Apache 2.0
Sitio web www .deeplearning4j .org Edita esto en Wikidata

Eclipse Deeplearning4j es una biblioteca de programación escrita en Java para la máquina virtual Java (JVM). Es un marco con amplio soporte para algoritmos de aprendizaje profundo. Deeplearning4j incluye implementaciones de la máquina de Boltzmann restringida , red de creencias profundas, codificador automático profundo, codificador automático de eliminación de ruido apilado y red de tensor neuronal recursivo , word2vec , doc2vec y GloVe . Todos estos algoritmos incluyen versiones paralelas distribuidas que se integran con Apache Hadoop y Spark .

Deeplearning4j es un software de código abierto publicado bajo Apache License 2.0, desarrollado principalmente por un grupo de aprendizaje automático con sede en San Francisco . Cuenta con el respaldo comercial de la startup Skymind, que agrupa DL4J, TensorFlow , Keras y otras bibliotecas de aprendizaje profundo en una distribución empresarial llamada Skymind Intelligence Layer. Deeplearning4j se contribuyó a la Fundación Eclipse en octubre de 2017.

Introducción

Deeplearning4j se basa en el lenguaje de programación Java ampliamente utilizado , aunque es compatible con Clojure e incluye una interfaz de programación de aplicaciones (API) Scala . Funciona con su propia biblioteca de computación numérica de código abierto, ND4J , y funciona tanto con unidades de procesamiento central (CPU) como con unidades de procesamiento de gráficos (GPU).

Deeplearning4j se ha utilizado en varias aplicaciones comerciales y académicas. El código está alojado en GitHub . Se mantiene un foro de soporte en Gitter .

El marco es componible, lo que significa que las redes neuronales superficiales como las máquinas de Boltzmann restringidas, las redes convolucionales, los codificadores automáticos y las redes recurrentes se pueden agregar entre sí para crear redes profundas de diversos tipos. También cuenta con amplias herramientas de visualización y un gráfico de cálculo.

Repartido

El entrenamiento con Deeplearning4j ocurre en un grupo. Las redes neuronales se entrenan en paralelo mediante la reducción iterativa, que funciona en Hadoop -YARN y Spark . Deeplearning4j también se integra con los núcleos CUDA para realizar operaciones de GPU puras y funciona con GPU distribuidas.

Computación científica para la JVM

Deeplearning4j incluye una clase de matriz n-dimensional que usa ND4J que permite la computación científica en Java y Scala, similar a las funciones que NumPy proporciona a Python . Se basa efectivamente en una biblioteca para álgebra lineal y manipulación de matrices en un entorno de producción.

Biblioteca de vectorización DataVec para aprendizaje automático

DataVec vectoriza varios formatos de archivo y tipos de datos utilizando un sistema de formato de entrada / salida similar al uso de MapReduce por parte de Hadoop; es decir, convierte varios tipos de datos en columnas de escalares denominados vectores . DataVec está diseñado para vectorizar CSV, imágenes, sonido, texto, video y series de tiempo.

Texto y PNL

Deeplearning4j incluye un kit de herramientas de modelado de espacios vectoriales y modelado de temas , implementado en Java y que se integra con GPU paralelas para mejorar el rendimiento. Está diseñado para manejar grandes conjuntos de texto.

Deeplearning4j incluye implementaciones de frecuencia de término-frecuencia de documento inversa ( tf-idf ), aprendizaje profundo y el algoritmo word2vec de Mikolov, doc2vec y GloVe, reimplementado y optimizado en Java. Se basa en la incrustación de vecinos estocásticos distribuidos en t (t-SNE) para visualizaciones de nubes de palabras.

Casos de uso e integraciones del mundo real

Los casos de uso del mundo real para Deeplearning4j incluyen detección de intrusiones en la red y ciberseguridad, detección de fraudes para el sector financiero, detección de anomalías en industrias como la fabricación, sistemas de recomendación en comercio electrónico y publicidad, y reconocimiento de imágenes. Deeplearning4j se ha integrado con otras plataformas de aprendizaje automático como RapidMiner, Prediction.io y Weka .

Servidor de modelos de aprendizaje automático

Deeplearning4j ofrece modelos de aprendizaje automático para la inferencia en la producción utilizando la edición gratuita para desarrolladores de SKIL, Skymind Intelligence Layer. Un servidor de modelos sirve a los modelos de aprendizaje automático paramétricos que toman decisiones sobre los datos. Se utiliza para la etapa de inferencia de un flujo de trabajo de aprendizaje automático, después de las canalizaciones de datos y el entrenamiento de modelos. Un servidor de modelos es la herramienta que permite implementar la investigación en ciencia de datos en un entorno de producción del mundo real.

Lo que es un servidor web para Internet, un servidor modelo lo es para la IA. Cuando un servidor web recibe una solicitud HTTP y devuelve datos sobre un sitio web, un servidor modelo recibe datos y devuelve una decisión o predicción sobre esos datos: por ejemplo, envió una imagen, un servidor modelo podría devolver una etiqueta para esa imagen, identificando caras o animales en fotografías.

El servidor de modelos SKIL puede importar modelos de marcos de Python como Tensorflow, Keras, Theano y CNTK, superando una barrera importante en la implementación de modelos de aprendizaje profundo.

Benchmarks

Deeplearning4j es tan rápido como Caffe para tareas de reconocimiento de imágenes no triviales que utilizan múltiples GPU. Para los programadores que no están familiarizados con HPC en la JVM, hay varios parámetros que deben ajustarse para optimizar el tiempo de entrenamiento de la red neuronal. Estos incluyen configurar el espacio de pila, el algoritmo de recolección de basura, el empleo de memoria fuera de pila y los datos de guardado previo (decapado) para un ETL más rápido. Juntas, estas optimizaciones pueden conducir a una aceleración de 10 veces en el rendimiento con Deeplearning4j.

Idiomas API: Java, Scala, Python, Clojure y Kotlin

Deeplearning4j se puede utilizar a través de múltiples lenguajes API, incluidos Java, Scala, Python, Clojure y Kotlin. Su API Scala se llama ScalNet. Keras sirve como su API de Python. Y su envoltorio Clojure se conoce como DL4CLJ. Los lenguajes centrales que realizan las operaciones matemáticas a gran escala necesarias para el aprendizaje profundo son C, C ++ y CUDA C.

Tensorflow, Keras y Deeplearning4j

Tensorflow, Keras y Deeplearning4j trabajan juntos. Deeplearning4j puede importar modelos de Tensorflow y otros marcos de Python si se han creado con Keras.

Ver también

Referencias