Deep Java Library: Nuevo kit de herramientas Java para el aprendizaje profundo

En la conferencia de AWS: Invent 2019, Amazon lanzó Deep Java Library (DJL), una biblioteca de código abierto con API de Java para simplificar la capacitación, las pruebas, la implementación y la predicción con modelos de aprendizaje profundo.

Si bien Java sigue siendo el primer o segundo lenguaje de programación más popular desde finales de los 90, Python es el lenguaje más utilizado para el aprendizaje automático, con numerosos recursos y marcos de aprendizaje profundo.

DJL tiene como objetivo hacer que las herramientas de código abierto de aprendizaje profundo sean accesibles para los desarrolladores de Java, utilizando conceptos familiares y API intuitivas.

Los desarrolladores de Java pueden usar su IDE favorito con la ejecución de código basada en DJL o Jupyter Notebook para Java.

DJL es agnóstico de framework; abstrae las funciones de aprendizaje profundo de uso común, utilizando Java Native Access (Java Native Apache) sobre los marcos de aprendizaje profundo existentes, y actualmente proporciona implementaciones para Apache MXNet y TensorFlow.

Fuente: INFOQ

Las funciones comunes para entrenar un modelo se muestran en el pseudocódigo DJL de muestra a continuación:

// Create an empty model
Model model = Model.newInstance())
. . .
// Setup training with configurations
Trainer trainer = model.newTrainer(config))
. . .
// Use trainer to fit model with training and validation datasets
TrainingUtils.fit(trainer, epoch, trainingSet, validateSet);                   
// Save the model         
model.save(modelDir, "mlp"); 

Además, el repositorio DJL GitHub viene con conjuntos de datos populares, modelos pre-entrenados, ejemplos de código y tutoriales de Jupyter Notebook sobre casos de uso como clasificación de imágenes, segmentación de instancias y reconocimiento de acciones .

Otra biblioteca de código abierto y de aprendizaje profundo para Java es Deep Learning for Java (DL4J), que está escrita en Java y aprovecha Apache Spark{:target=””_blank} y Hadoop para acelerar el entrenamiento.

DL4J es robusto, flexible, efectivo y un gran marco para desarrolladores de Java. Sin embargo, al comparar DL4J con DJL y otros marcos de aprendizaje profundo, DL4J tiene la desventaja de que no puede beneficiarse de las crecientes bases de código Python de aprendizaje automático, que DJL puede, ya que es independiente del marco.

Visión General

Deep Java Library (DJL) es una API Java de código abierto, de alto nivel y agnóstica para el aprendizaje profundo. DJL está diseñado para ser fácil de comenzar y fácil de usar para los desarrolladores de Java. DJL proporciona una experiencia de desarrollo Java nativa y funciona como cualquier otra biblioteca Java normal.

No tiene que ser experto en aprendizaje automático / aprendizaje profundo para comenzar. Puede usar su experiencia Java existente como una rampa de acceso para aprender y usar el aprendizaje automático y el aprendizaje profundo. Puede usar su IDE favorito para construir, entrenar e implementar sus modelos. DJL facilita la integración de estos modelos con sus aplicaciones Java.

Debido a que DJL es independiente del marco de aprendizaje profundo, no tiene que elegir entre marcos al crear sus proyectos. Puede cambiar marcos en cualquier momento. Para garantizar el mejor rendimiento, DJL también ofrece opciones automáticas de CPU / GPU basadas en la configuración del hardware.

? Visitar Biblioteca Deep Java Librería ?
? Repositorio de Github: Deep Java Librería ?
? Repositorio de Github: Deep Java Librería ?

Fuentes: INFOQ

Artículos Relacionados
RubyGems: Actualizar certificado SSL (12)

Si has visto el siguiente error de SSL al intentar obtener actualizaciones de RubyGems: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed Este error ocurre cuando a tu computadora le falta un archivo que necesita para verificar que el servidor ¡SEGUIR LEYENDO!

Python supera a Java para convertirse en el segundo lenguaje de programación más popular

La edición de Noviembre de la lista de los principales lenguajes de programación de TIOBE nos trae una grata sorpresa (o no tan sorpresa, para la mayoría de nosotros). Puesto que por primera vez en los 20 años de historia del índice TIOBE, los ¡SEGUIR LEYENDO!

¿Qué es AsmL? Lenguaje de máquina de estado abstracto

Abstract State Machine Language (AsmL) es un lenguaje de especificación ejecutable basado en la teoría de Abstract State Machine (ASM). AsmL se utiliza para el modelado, análisis, simulación y pruebas de conformidad de sistemas. AsmL es desarrollado por el equipo de investigación de Fundamentos ¡SEGUIR LEYENDO!

Novedades del lenguaje de programación Java

Recientemente fue lanzado el kit de desarrollo de Java 19, con su lanzamiento oficial programado para Septiembre de este año. Pero ya es completamente funcional. En el nuevo kit JDK de Java se incluyen 5 funciones relevantes para su lanzamiento: El paralelismo estructurado, los ¡SEGUIR LEYENDO!

5 Mejores consejos para programadores de software freelance

El trabajar freelance es cada vez más común en estos días. Curiosamente, más de un tercio de las personas ahora trabajan como autónomos. Trabajar como freelance tiene varios beneficios tanto para la organización para la que trabajas como para el propio trabajador autónomo. Aunque ¡SEGUIR LEYENDO!

¿Cómo se relaciona el lenguaje de programación Dart con Flutter?

En comparación con otras tecnologías de desarrollo de aplicaciones móviles, Flutter y Dart son dos de las nuevas palabras clave que están haciendo mucho ruido en la industria. Y con la ayuda de este artículo, le proporcionaremos la introducción básica de estas dos tecnologías ¡SEGUIR LEYENDO!

Coccinelle: Utilidad para refactorizar código fuente en el lenguaje de C

Coccinelle es una utilidad de código abierto para hacer coincidir y transformar el código fuente de los programas escritos en el lenguaje de programación C. El motor de comparación y transformación de programas que proporciona el lenguaje SmPL (lenguaje de parches semánticos) para especificar ¡SEGUIR LEYENDO!

Comparte tu opinión