A comprehensive JVM-based deep learning ecosystem for building, training, and deploying models with support for model import and distributed training.
Eclipse Deeplearning4J (DL4J) is a comprehensive deep learning ecosystem built for the Java Virtual Machine (JVM). It provides tools for loading, preprocessing, building, training, and deploying deep learning models, with support for importing models from frameworks like Keras, TensorFlow, and ONNX/PyTorch. The project addresses the need for production-ready, scalable deep learning solutions in JVM-based environments, offering distributed training on Apache Spark and hardware acceleration.
JVM developers and data scientists working in Java, Scala, Kotlin, or Clojure who need to implement deep learning models in production systems, especially those requiring integration with existing enterprise infrastructure or distributed computing frameworks like Apache Spark.
DL4J stands out by offering a full-stack, JVM-native deep learning solution with robust model import capabilities, distributed training support, and high performance via optimized C++ libraries. It eliminates the need for Python-centric workflows in JVM environments, providing a seamless, scalable alternative for enterprise applications.
Suite of tools for deploying and training deep learning models using the JVM. Highlights include model import for keras, tensorflow, and onnx/pytorch, a modular and tiny c++ library for running math code and a java based math library on top of the core c++ library. Also includes samediff: a pytorch/tensorflow like library for running deep learn...
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports importing Keras models from h5 and TensorFlow frozen .pb formats, with plans for ONNX and SavedModel, easing integration with Python-based workflows.
Runs on the JVM, allowing use with Java, Scala, Kotlin, and Clojure, making it versatile for enterprise systems built on these languages.
Integrates with Apache Spark for distributed training, enabling scalable handling of large datasets and models in production environments.
Leverages LibND4J with CPU (AVX2/512) and GPU (CUDA) support via libraries like cuDNN and OpenBLAS, ensuring high-performance computations.
DataVec provides robust data loading and preprocessing from diverse formats including images, video, audio, CSV, and Excel, streamlining pipeline setup.
Requires build tools like Maven with multiple dependencies, and building from source has prerequisites, making it complex for quick adoption.
Import for ONNX, TensorFlow SavedModel, and enhanced Keras support is planned but not fully implemented, limiting out-of-the-box compatibility.
While JVM-focused, the community and available pre-trained models are smaller compared to Python frameworks like PyTorch or TensorFlow.