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.
- classification: This folder contains various binary and multiple classification task exercises for learners to practice and solutions to refer to.
- convolution: This folder contains MNIST classification and object detection using transfer learning of TinyYOLO and VGG16.
- dataexamples: This folder contains model that train neural network to learn drawing.
- datavec: This folder contains K-Fold cross-validation tutorial, load and transform CSV and Image files using DataVec.
- feedforward: This folder contains simplest neural network to approximate a function that can map input to an output, and model that can detect the gender of a person based on his/her name.
- generative: This folder contains a GAN model that can generate MNIST digits.
- humanactivity: This folder contains a LSTM model and a hybrid CNN-LSTM neural network to perform human activity classification.
- modelsaveload: This folder contains step-by-step on how to save and load a model.
- nd4j: This folder contains ND4J tutorial and exercise.
- recurrent: This folder contains a basic RNN network that learn to create a string, a LSTM model to generate texts, and a LSTM model for mortality prediction.
- regression: This folder contains neural network that predict ridership demand.
- VAE: This folder contains a VAE model for bank transaction anomaly detection.
- classification: This folder contains a custom model and a VGG16 model for dog breed classification, and a ResNet-50 model for food classification.
- facial_recognition: This folder contains facial recognition with a pipeline of video streaming, face detection and face recognition.
- image processing: This folder contains step-by-step on image processing.
- object_detection: This folder contains a TinyYOLO model and a YOLOv2 model for Avocado and Banana Object Detection, and a pre-trained YOLOv2 model for metal surface defects detection.
- segmentation: This folder contains semantic segmentation on the car images and the cell nucleus images from Data Science Bowl 2018 using a pre-trained U-Net.
- deeplearning4j 1.0.0-M1.1
- CUDA 11.2 (Note: Optional if you are using CPU)
- cuDNN 8.1.1 (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 11.2
- cuDNN 8.1.1
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.
For bad internet connection and unable to perform task smoothly, you can go to src\main\resources\config.properties and download necessary dataset before the sessions.
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)
For contributors or someone who wishes to contribute, please take a look at the guideline here to help you in your journey.