java implemented Convoltional Neural Networks. There are a lot of deep learning networks, but they may be complicated and not friendly to java programmers.
This project is simpler for java programmers to learn and easy to use,help java programmers understanding how convolutional neural network works.
- Convolutional Neural layer
- Maxpooling layer
- Relu layer
- Affine layer
- Sigmoid layer
- Softmax with loss layer
- numberic gradient
- back propagation
- SGD update
- Batchnorm layer
- Dropout layer
Momentoum, Adam update will be implemented later.
- install JDK 8 or higher
- compile the source
- set parameters in startup.properties
- run a network : java run networkname
- train a network: java train networkname
The jar file is under foler ForTest.
- install jDK8 or higher
- download runable jar under ForTest folder
- all necessary resource is under ForTest folder
- edit the startup.properties file to modify the relative path.
- the startup.properties file must be in the same folder as ai.jar
the trained network will be saved to the path set by trainSavePath parameter. the you can run a network by name under trainSavePath.
channel = 1
filterNumber = 30
filterSize = 3
cnnLayers = 4
pad = 0
stride = 1
inputSize = -1
hiddenSize = 100
outputSize = 10
activation = relu / sigmoid
denseLayers = 2
userDropout = false
batchSize = 100
trainSize = 10000
testSize = 50
learningRate = 0.1d
iteNum = 1000
trainImgPath = D:/AI/mnist-data-reader-master/data/train-images.idx3-ubyte trainLabelPath = D:/AI/mnist-data-reader-master/data/train-labels.idx1-ubyte testImgPath = D:/AI/mnist-data-reader-master/data/t10k-images.idx3-ubyte testLabelPath = D:/AI/mnist-data-reader-master/data/t10k-labels.idx1-ubyte
trainSavePath=d:/AI/