Eclipse Deeplearning4j Training Labs
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.
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:
Make sure that 64-Bit version of Java is installed.
Install IntelliJ IDEA Community Edition
Download and install IntelliJ IDEA.
Install Apache Maven Optional
IntelliJ provides a default Maven that is bundled with the installer. Follow these instructions to install Apache Maven.
GPU setup Optional
Follow the instructions below if you plan to use GPU setup.
- Install CUDA and cuDNN
- CUDA 11.2
- cuDNN 8.1.1
- 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 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.
jnind4jcpu.dll: Can't find dependent libraries
Change the maven dependencies of Javacpp to the latest (1.4.3 works).
"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
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.