This document is the API specification for the Deep Java Library (DJL).

The key design goal for the DJL is to simplify the use of deep learning for Java developers. Developers don't need to be machine learning/deep learning experts to get started. They can start with their existing Java expertise as a foundation to learn and use ML/DL. Developers can use their favorite IDE to build, train, and deploy their models. They can also easily integrate these models with their Java applications. They don't have to compromise on model performance, scale, or choice of GPU vs. CPUs.

DJL is deep learning engine agnostic. Developers don't have to make a choice between engines when they start their project. They can switch to a different engine at any time.

DJL provides a native Java development experience and functions just like any other regular Java library would. DJL's ergonomic API interface is designed to guide developers with best practices to accomplish deep learning tasks.

The following is an example of how to write inference code:

        // Assume user has a pre-trained already, they just need load it
        Model model = Model.load(modelDir, modelName);

        // User can implement Translator interface, read Translator for detail.
        Translator translator = new MyTranslator();

        // Next user need create a Predictor, and use Predictor.predict()
        // to get prediction.
        try (Predictor<Image, DetectedObjects> predictor = model.newPredictor(translator)) {
            DetectedObjects result = predictor.predict(img);
        }

More tutorials, documents, and examples can be on our GitHub repository.