Running examples strategically structured to enhance understanding of building models with Eclipse Deeplearning4j.
This repo contains codes for hands-on purpose during training session. All codes had been tested using CPU.
- convolution/MNIST: Mnist classification using CNN.
- convolution/TransferLearning/TinyYoLo/TLDetectorActors:Detect actors face using CNN.
- dataexample/ImageDrawer: Train neural network that learns to draw.
- feedforward/detectgender: Detect the gender of a person based on his/her name.
- feedforward/SimplestNetwork: Simplest neural network to approximate a function that can map input to an output.
- generative/MnistGAN: A GAN model to generate mnist digits.
- humanactivity/CNNLSTM: A hybrid CNN-LSTM neural network to perform human activity classification.
- humanactivity/LSTM: An LSTM model to classify human activity.
- modelsaveload/MnistImageLoad: Step-by-step on how to save a model.
- modelsaveload/MnistImageSave: Step-by-step on how to load a model.
- recurrent/basic: Basic RNN network that learns to create a string.
- recurrent/character: Texts generation using LSTM.
- recurrent/physionet: Mortality prediction using LSTM.
- VAE/VAECreditAnomaly: Bank transaction anomaly detection using VAE.
- ND4J: ND4J tutorial and exercise.
- DataVec: Load and transform CSV and Image files using DataVec
- ImageClassification/CustomModel: Dog breed classification using custom model.
- ImageClassification/TransferLearning: Dog breed classification using transfer learning.
- ObjectDetection/YOLO:
- Avocado and Banana Object Detection model using Transfer learning of TinyYOLO and YOLOv2.
- Metal surface defects detection model using transfer learning of pre-trained YOLOv2
- Segmentation/PretrainedUNET: Semantic segmentation on the Cell nucleus image from Data Science Bowl 2018, using a Pre-trained U-Net.
- Segmentation/ImageAugmentation: (Optional) Image augmentation to increase samples, if required.
- FacialRecognition Perform facial recognition with a pipeline of video streaming->face detection->face recognition.
- deeplearning4j beta 6.0
- CUDA 10.0 (Note: Optional if you are using CPU)
- cuDNN 7.6 (Note: Optional if you are using CPU)
Download Java JDK
here.
(Note: Use Java 8 for full support of DL4J operations)
Check the version of Java using:
java -version
Make sure that 64-Bit version of Java is installed.
Download and install IntelliJ IDEA.
IntelliJ provides a default Maven that is bundled with the installer. Follow these instructions to install Apache Maven.
Follow the instructions below if you plan to use GPU setup.
- Install CUDA and cuDNN
Requirements:- CUDA 10.0
- cuDNN 7.6
CUDA and cuDNN can be downloaded from here and here. Step by step installation guides can be found here.
- Dependencies are needed to be included into Maven project if we wish to use GPU for training. Follow the links below for instructions in details.
All examples are separated into training and solution folders. The download will take some time to download dependencies from maven when you first run these examples.
All codes in training folder have few lines commented out so that they can be taught and demonstrated in the class. The solution folder contains the un-commented version for every line of codes.
Problem:
jnind4jcpu.dll: Can't find dependent libraries
Solution:
Change the maven dependencies of Javacpp to the
latest (1.4.3 works).
Problem:
"C:\Users\LohJZ\.javacpp\cache\cuda-10.0-7.3-1.4.3-windows-x86_64.jar\org\bytedeco\javacpp\windows-x86_64\jnicudnn.dll": Can't find procedure
Solution:
Install latest CUDA (version 7.6 works)