Deeplearing4j: Keras model import

Once you have imported your model into DL4J, our full production stack is at your disposal.
We support import of all Keras model types, most layers and practically all utility functionality.
Please check here for a complete list of supported Keras features.

Getting started: Import a Keras model in 60 seconds

To import a Keras model, you need to create and serialize
such a model first. Here’s a simple example that you can use. The model is a simple MLP that takes
mini-batches of vectors of length 100, has two Dense layers and predicts a total of 10
categories. After defining the model, we serialize it in HDF5 format.

That’s it! The KerasModelImport is your main entry point to model import and class takes
care of mapping Keras to DL4J concepts internally. As user you just have to provide your model
file, see our Getting started guide for more details and options to load
Keras models into DL4J.

You can now use your imported model for inference (here with dummy data for simplicity)

Project setup

To use Keras model import in your existing project, all you need to do is add the following
dependency to your pom.xml.

<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-modelimport</artifactId>
<version>1.0.0-beta</version> // This version should match that of your other DL4J project dependencies.
</dependency>

If you need a project to get started in the first place, consider cloning
DL4J examples and follow
the instructions in the repository to build the project.

Popular models and applications

We support import for a growing number of applications, check here
for a full list of currently covered models. These applications include

Deep convolutional and Wasserstein GANs

UNET

ResNet50

SqueezeNet

MobileNet

Inception

Xception

Troubleshooting and support

An IncompatibleKerasConfigurationException message indicates that you are attempting to
import a Keras model configuration that is not currently supported in Deeplearning4j
(either because model import does not cover it, or DL4J does not implement the layer,
or feature).

Once you have imported your model, we recommend our own ModelSerializer class for further
saving and reloading of your model.

You can inquire further by visiting the DL4J gitter channel. You might consider filing
a feature request via Github
so that this missing functionality can be placed on the DL4J development roadmap or even
sending us a pull request with the necessary changes!

Why Keras model import?

Keras is a popular and user-friendly deep learning library written in Python.
The intuitive API of Keras makes defining and running your deep learning
models in Python easy. Keras allows you to choose which lower-level
library it runs on, but provides a unified API for each such backend. Currently,
Keras supports Tensorflow, CNTK and Theano backends, but Skymind is
working on an ND4J backend
for Keras as well.

There is often a gap between the production system of a company and the
experimental setup of its data scientists. Keras model import
allows data scientists to write their models in Python, but still
seamlessly integrates with the production stack.

Keras model import is targeted at users mainly familiar with writing
their models in Python with Keras. With model import you can bring your
Python models to production by allowing users to import their models
into the DL4J ecosphere for either further training or evaluation purposes.

You should use this module when the experimentation phase of your
project is completed and you need to ship your models to production. Skymind
commercial support for Keras implementations in enterprise.

API Reference

API Reference

Detailed API docs for all libraries including DL4J, ND4J, DataVec, and Arbiter.

Examples

Examples

Explore sample projects and demos for DL4J, ND4J, and DataVec in multiple languages including Java and Kotlin.

Tutorials

Tutorials

Step-by-step tutorials for learning concepts in deep learning while using the DL4J API.

Guide

Guide

In-depth documentation on different scenarios including import, distributed training, early stopping, and GPU setup.

Deploying models? There's a tool for that.

Eclipse Deeplearning4j

Eclipse Deeplearning4j is an open-source, distributed deep-learning project in Java and Scala spearheaded by the people at Skymind. DL4J supports GPUs and is compatible with distributed computing software such as Apache Spark and Hadoop.