What is DL4J?
Eclipse Deeplearning4j is an open-source, JVM-based distributed deep learning framework designed for the Java and Scala ecosystems, supporting the construction, training, and deployment of neural network models in production settings. It provides a complete machine learning ecosystem, encompassing tensor computation, data preprocessing, automatic differentiation, model import/export, hyperparameter optimization, and pre-trained model management. Furthermore, it achieves native GPU acceleration through CUDA while optimizing CPU performance using OpenBLAS and oneDNN.
The framework comprises key components such as ND4J (the JVM version of NumPy), SameDiff (for automatic differentiation and computational graph execution), DataVec (for data loading and ETL), Model Import (supporting Keras/TensorFlow/ONNX model imports), Python4J (enabling Java to call CPython), OmniHub (a registry for pre-trained models), and Arbiter (for hyperparameter optimization), covering the entire lifecycle from data preparation to model serving.
Key features
Supports native CUDA GPU acceleration and OpenBLAS/oneDNN CPU high-performance computing, making it suitable for large-scale distributed training scenarios.
Provides model import functionality for Keras, TensorFlow, and ONNX, enabling cross-framework model reuse and transfer learning.
Use cases and audience
Targeted at Java and Scala developers, requiring a foundational understanding of deep learning to build, train, and deploy neural networks.
- Build, train, and deploy Java/Scala neural network models
- Import Keras/TensorFlow/ONNX pre-trained models for inference or fine-tuning
- Run distributed deep learning training on Spark
Supports multiple data source inputs: local files, HDFS, databases, and streaming data; handles image, text, time-series, and other formats; and enables ETL processing via DataVec.
Includes trained neural network models (which can be saved locally or on HDFS), inference results (such as classification labels, regression values, embedding vectors, etc.), and evaluation metrics (accuracy, loss values, etc.).
Frequently asked questions
Does DL4J support GPU acceleration?
Supported, with native GPU acceleration via CUDA, and support for high-performance CPU computations using OpenBLAS and oneDNN.
Can Python code be called from Java?
Supported, enabling Java’s embedded interoperability with CPython through the Python4J library.
How to use
- 01
Read the Ecosystem Overview to understand the collaborative relationships among libraries
- 02
Follow the Quickstart guide to build and train your first neural network in 10 minutes
- 03
Add DL4J to your project dependencies via Maven Setup
- 04
Refer to Core Concepts to master fundamental ideas such as tensors, data pipelines, and training loops
Official website & sources
Sources
Updated on 2026-10-30

