Added additional XOR example with later added neurons
This commit is contained in:
parent
8c82838c54
commit
4766ea0ad9
1 changed files with 32 additions and 0 deletions
32
src/main/java/ExampleXORBlankLayers.java
Normal file
32
src/main/java/ExampleXORBlankLayers.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import org.ejml.simple.SimpleMatrix;
|
||||||
|
|
||||||
|
public class ExampleXORBlankLayers {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SimpleMatrix[] X_train = {new SimpleMatrix(new double[][]{{0, 0}}),
|
||||||
|
new SimpleMatrix(new double[][]{{0, 1}}),
|
||||||
|
new SimpleMatrix(new double[][]{{1, 0}}),
|
||||||
|
new SimpleMatrix(new double[][]{{1, 1}})};
|
||||||
|
SimpleMatrix[] y_train = {new SimpleMatrix(new double[][]{{0}}),
|
||||||
|
new SimpleMatrix(new double[][]{{1}}),
|
||||||
|
new SimpleMatrix(new double[][]{{1}}),
|
||||||
|
new SimpleMatrix(new double[][]{{0}})};
|
||||||
|
|
||||||
|
Network network = new Network();
|
||||||
|
network.addLayer(new BlankLayer(2));
|
||||||
|
network.addLayer(new ActivationLayer(ActivationFunctions::tanh, ActivationFunctions::tanhPrime));
|
||||||
|
network.addLayer(new BlankLayer(1));
|
||||||
|
network.addLayer(new ActivationLayer(ActivationFunctions::tanh, ActivationFunctions::tanhPrime));
|
||||||
|
network.addNeuron(0, 2);
|
||||||
|
|
||||||
|
network.use(LossFunctions::MSE, LossFunctions::MSEPrime);
|
||||||
|
network.fit(X_train, y_train, 1000, 0.1d);
|
||||||
|
|
||||||
|
SimpleMatrix[] output = network.predict(X_train);
|
||||||
|
for (SimpleMatrix entry : output) {
|
||||||
|
System.out.println("Prediction:");
|
||||||
|
for (int i = 0; i < entry.getNumElements(); i++) {
|
||||||
|
System.out.println(Math.round(entry.get(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue