Deep Learning Tutorials

Welcome to our Tutorials page. If you are just getting started with Deep Learning, and DeepLearning4J these tutorials will help clarify some of the concepts. Image recognition, Text processing and Classification examples are provided here. Some of the examples provide a written introduction along with code, while others over a screencast with voice of the code being written. Enjoy !

Basic Neural Networks

MNIST for Beginners

MNIST is the “Hello World” of machine learning. With this tutorial, you can train on MNIST with a single-layer neural network.

View the tutorial
Just show me the code

MNIST for Experts

By applying a more complex algorithm, Lenet, to MNIST, you can achieve 99 percent accuracy. Lenet is a deep convolutional network.

Just show me the code

Word2Vec Tutorial

Word2vec is a popular natural-language processing algorithm capable of creating neural word embeddings, which in turn can be fed into deeper neural networks.

View the tutorial
Just show me the code

Linear Classifier Tutorial

This tutorial shows you how a multilayer perceptron can be used as a linear classifier.

Just show me the code

Video lecture by instructor Tom Hanlon on Machine Learning. Tom provides an overview of how to build a simple neural net in this introductory tutorial. This screencast shows how to build a Linear Classifier using Deeplearning4j.

XOR Tutorial

XOR is a digital logic gate that implements an exclusive or. XOR means that a true output, or an output of 1, results if one, and only one, of the inputs to the gate is true.

Just show me the code

DataVec + Spark Tutorial

This tutorial shows how to use Skymind’s DataVec to ingest Comma Separated Values from a text file, convert the fields to numeric using a DataVec Transform Process in Spark, and save the modified data. Transforming non-numeric data to numeric data is a key preliminary step to using a Neural Network to analyze the data.

Image Pipeline Tutorial

Image Ingestion and Labelling

This tutorial is a series of videos and code examples that show a complete data pipeline.

The first example demonstrates using some of DataVec’s tools to read a directory of images and generate a label for the image using ParentPathLabelGenerator. Once the data is read and labelled the image data is scaled so that the pixel values fall between 0 and 1, instead of 0 and 255.

Adding in a Neural Network

This tutorial builds on the Image Ingestion and Labelling tutorial by taking the DataVec image pipeline and adding a Neural Network to train on the images. Topics covered include MultiLayerNetwork, DataSetIterator, Training the network, monitoring scores as the model trains.

Saving and Loading a Trained Network

Once you have a trained your network you may want to save the trained network for use in building an application. This tutorial demonstrates what is needed to save the trained model, and to load the trained model.

Testing the Trained Network against user selected images

Once your network is trained and tested it is time to deploy the network in an application. This tutorial demonstrates Loading a training model, and adding a simple interface of a filechooser to allow the user to get the models opinion on what digit the image passed in might be. In the video I test a simple Feed Forward Neural Network that has been trained on the MNist dataset of handwritten digits, against an image of the digit 3 found in a google search.

Beginners Guide to Recurrent Networks and LSTM’s

Recurrent nets are a type of artificial neural network designed to recognize patterns in sequences of data, such as text, genomes, handwriting, the spoken word, or numerical times series data emanating from sensors, stock markets and government agencies.

Long Short-Term Memory Units provide a mechanism to allow a nueral net to learn from experience to classify, process and predict time series events.

View the tutorial

Using Recurrent Networks in DL4J

A more in depth discussion of RNN’s including configuring your code to use RNN’s in DL4J

View the tutorial

Other Deeplearning4j Tutorials

Chat with us on Gitter