deeplearning4j/deeplearning4j
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...
What it solves
It provides a complete ecosystem for building and deploying deep learning applications on the Java Virtual Machine (JVM), allowing developers to use languages like Java, Scala, Kotlin, and Clojure for AI development instead of being limited to Python.
How it works
The ecosystem is composed of several specialized libraries:
- DL4J: A high-level API for creating complex neural networks (MultiLayerNetworks and ComputationGraphs) and importing models from Keras.
- ND4J: A linear algebra library that handles mathematical operations, utilizing a C++ backend (LibND4J) for hardware acceleration on CPUs and GPUs.
- SameDiff: An automatic differentiation framework that uses a graph-based approach similar to TensorFlow for custom layers and loss functions.
- DataVec: An ETL tool for preprocessing machine learning data from various formats including HDFS, Spark, images, video, and audio.
- Python4J: Enables CPython execution within the JVM.
Who it’s for
JVM-based developers and enterprises that need to integrate deep learning into Java, Scala, Kotlin, or Clojure applications, as well as those requiring distributed training via Apache Spark.
Highlights
- JVM Native: Full support for Java and other JVM languages.
- Hardware Acceleration: Supports CUDA GPUs and various CPU architectures (x86, ARM, PowerPC).
- Interoperability: Ability to import models from Keras and TensorFlow (.pb format).
- Distributed Training: Integrated support for training on Apache Spark.
Related
- Project
- Project
- Project
- Project
- Project