DEEPLEARNING 4J PART OF COURSE SGR 94
Topic : Softwere Engineering for Machine Learning. Handbook of Arizona State University and Chatgpt.
Learned from Arizona State University Spring 2022 Handbook and Chatgpt.
Introduction :
Step 1: Set Up Your Maven Project
<dependencies>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>1.0.0-M2</version>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native-platform</artifactId>
<version>1.0.0-M2</version>
</dependency>
<dependency>
<groupId>org.datavec</groupId>
<artifactId>datavec-api</artifactId>
<version>1.0.0-M2</version>
</dependency>
</dependencies>
These dependencies are essential for building and training neural networks with DL4J
Step 2 : Define the Neural Network Configuration
import org.deeplearning4j.nn.conf.*;
import org.deeplearning4j.nn.conf.layers.*;
import org.nd4j.linalg.activations.Activation;
import org.nd4j.linalg.lossfunctions.LossFunctions;
import org.nd4j.linalg.learning.config.Sgd;
public class NeuralNetworkConfig {
public static MultiLayerConfiguration createConfig() {
return new NeuralNetConfiguration.Builder()
.seed(123)
.updater(new Sgd(0.1))
.list()
.layer(0, new DenseLayer.Builder()
.nIn(2)
.nOut(3)
.activation(Activation.RELU)
.build())
.layer(1, new OutputLayer.Builder(LossFunctions.LossFunction.MSE)
.nIn(3)
.nOut(1)
.activation(Activation.IDENTITY)
.build())
.build();
}
}
This configuration sets up a simple feedforward neural network with one hidden layer
Step 3: Prepare the Training Data
import org.nd4j.linalg.factory.Nd4j;
import org.nd4j.linalg.dataset.DataSet;
import org.nd4j.linalg.dataset.api.iterator.ListDataSetIterator;
import java.util.Arrays;
import java.util.List;
public class DataPreparation {
public static ListDataSetIterator<DataSet> prepareData() {
INDArray input = Nd4j.create(new double[][]{
{0, 0},
{0, 1},
{1, 0},
{1, 1}
});
INDArray labels = Nd4j.create(new double[][]{
{0},
{1},
{1},
{0}
});
DataSet dataSet = new DataSet(input, labels);
return new ListDataSetIterator<>(dataSet.asList(), 4);
}
}
This method prepares the XOR dataset for training
Step 4: Train the Neural Network
import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
import org.deeplearning4j.optimize.listeners.ScoreIterationListener;
public class ModelTrainer {
public static void trainModel() {
MultiLayerNetwork model = new MultiLayerNetwork(NeuralNetworkConfig.createConfig());
model.init();
model.setListeners(new ScoreIterationListener(100));
ListDataSetIterator<DataSet> iterator = DataPreparation.prepareData();
for (int i = 0; i < 1000; i++) {
model.fit(iterator);
if (i % 100 == 0) {
System.out.println(“Iteration “ + i + “ — Score: “ + model.score());
}
}
}
}
This class trains the neural network for 1000 epochs and prints the score every 100 iterations
import org.nd4j.linalg.api.ndarray.INDArray;
public class ModelEvaluator {
public static void evaluateModel(MultiLayerNetwork model) {
INDArray output = model.output(Nd4j.create(new double[][]{{1, 0}}));
System.out.println(“Prediction for [1, 0]: “ + Arrays.toString(output.toDoubleVector()));
}
}
Step 5: Evaluate the Model
import org.nd4j.linalg.api.ndarray.INDArray;
public class ModelEvaluator {
public static void evaluateModel(MultiLayerNetwork model) {
INDArray output = model.output(Nd4j.create(new double[][]{{1, 0}}));
System.out.println(“Prediction for [1, 0]: “ + Arrays.toString(output.toDoubleVector()));
}
}
Step 5: Evaluate the Model
This method evaluates the trained model on a new input.
public class Main {
public static void main(String[] args) {
ModelTrainer.trainModel();
MultiLayerNetwork model = new MultiLayerNetwork(NeuralNetworkConfig.createConfig());
model.init();
ModelEvaluator.evaluateModel(model);
}
}
Step 6: Run the Application
public class Main {
public static void main(String[] args) {
ModelTrainer.trainModel();
MultiLayerNetwork model = new MultiLayerNetwork(NeuralNetworkConfig.createConfig());
model.init();
ModelEvaluator.evaluateModel(model);
}
}
This is the entry point of the application, which trains the model and evaluates it.
By following these steps, you can build a simple neural network using Deeplearning4j in Java. This example demonstrates the basic workflow of setting up a neural network, preparing data, training the model, and evaluating its performance.
contact for Business in Delhi and India
Analytics, Mathematics Training.
Business consulting.
English and Education Consulting.
Subject to Availability: http://shankytyagi.github.io
SHAAN TYAGI EDUCATION AND ANALYTICS ENTERPRISES Delhi : WEBSITE :