Package com.github.neuralnetworks.util

Examples of com.github.neuralnetworks.util.Matrix


  NeuralNetworkImpl nn = NNFactory.convNN(new int[][] { {2, 1, 1}, {1, 1}, {2}, {2}, {1} }, false);
  nn.setLayerCalculator(NNFactory.lcSigmoid(nn, null));
  NNFactory.lcMaxPooling(nn);

  FullyConnected c1 = (FullyConnected) nn.getInputLayer().getConnections().get(0).getOutputLayer().getConnections().get(1).getOutputLayer().getConnections().get(1);
  Matrix cg1 = c1.getConnectionGraph();
  cg1.set(0.1f, 0, 0);
  cg1.set(0.8f, 0, 1);
  cg1.set(0.4f, 1, 0);
  cg1.set(0.6f, 1, 1);

  FullyConnected c2 = (FullyConnected) nn.getOutputLayer().getConnections().iterator().next();
  Matrix cg2 = c2.getConnectionGraph();
  cg2.set(0.3f, 0, 0);
  cg2.set(0.9f, 0, 1);

  BackPropagationTrainer<?> bpt = TrainerFactory.backPropagation(nn, new SimpleInputProvider(new float[][] { { 0.35f, 0.9f } }, new float[][] { { 0.5f } }, 1, 1), new SimpleInputProvider(new float[][] { { 0.35f, 0.9f } }, new float[][] { { 0.5f } }, 1, 1), null, null, 1f, 0f, 0f, 0f);
  bpt.train();

  assertEquals(0.09916, cg1.get(0, 0), 0.01);
  assertEquals(0.7978, cg1.get(0, 1), 0.01);
  assertEquals(0.3972, cg1.get(1, 0), 0.01);
  assertEquals(0.5928, cg1.get(1, 1), 0.01);
  assertEquals(0.272392, cg2.get(0, 0), 0.01);
  assertEquals(0.87305, cg2.get(0, 1), 0.01);
    }
View Full Code Here


  Conv2DConnection cc = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  Util.fillArray(cc.getWeights(), 1);

  ValuesProvider vp = new ValuesProvider();
  vp.addValues(nn.getInputLayer(), new Matrix(new float[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, 1));

  Set<Layer> calculatedLayers = new HashSet<>();
  calculatedLayers.add(nn.getInputLayer());
  nn.getLayerCalculator().calculate(nn, nn.getOutputLayer(), calculatedLayers, vp);

  Matrix o = vp.getValues(nn.getOutputLayer());
  assertEquals(16, o.get(0, 0), 0.00001);
  assertEquals(24, o.get(1, 0), 0.00001);
  assertEquals(56, o.get(2, 0), 0.00001);
  assertEquals(64, o.get(3, 0), 0.00001);
    }
View Full Code Here

  Set<Layer> calculatedLayers = new HashSet<>();
  calculatedLayers.add(dbn.getInputLayer());

  ValuesProvider results = new ValuesProvider();

  results.addValues(dbn.getInputLayer(), new Matrix(new float[] {1, 0, 1}, 1));
  dbn.getLayerCalculator().calculate(dbn, dbn.getOutputLayer(), calculatedLayers, results);

  assertEquals(1.06, results.getValues(dbn.getOutputLayer()).get(0, 0), 0.00001);
  assertEquals(1.06, results.getValues(dbn.getOutputLayer()).get(1, 0), 0.00001);
    }
View Full Code Here

  Set<Layer> calculatedLayers = new HashSet<>();
  calculatedLayers.add(sae.getInputLayer());

  ValuesProvider results = new ValuesProvider();
  results.addValues(sae.getInputLayer(), new Matrix(new float[] {1, 0, 1}, 1));
  sae.getLayerCalculator().calculate(sae, sae.getOutputLayer(), calculatedLayers, results);

  assertEquals(1.06, results.getValues(sae.getOutputLayer()).get(0, 0), 0.00001);
  assertEquals(1.06, results.getValues(sae.getOutputLayer()).get(1, 0), 0.00001);
    }
View Full Code Here

  DBN dbn = NNFactory.dbn(new int [] {3, 2, 2}, true);
  dbn.setLayerCalculator(NNFactory.lcSigmoid(dbn, null));

  RBM firstRBM = dbn.getFirstNeuralNetwork();

  Matrix cg1 = firstRBM.getMainConnections().getConnectionGraph();
  cg1.set(0.2f, 0, 0);
  cg1.set(0.4f, 0, 1);
  cg1.set(-0.5f, 0, 2);
  cg1.set(-0.3f, 1, 0);
  cg1.set(0.1f, 1, 1);
  cg1.set(0.2f, 1, 2);

  Matrix cgb1 = firstRBM.getVisibleBiasConnections().getConnectionGraph();
  cgb1.set(0f, 0, 0);
  cgb1.set(0f, 1, 0);
  cgb1.set(0f, 2, 0);

  Matrix cgb2 = firstRBM.getHiddenBiasConnections().getConnectionGraph();
  cgb2.set(-0.4f, 0, 0);
  cgb2.set(0.2f, 1, 0);

  SimpleInputProvider inputProvider = new SimpleInputProvider(new float[][] { { 1, 0, 1 } }, null, 1, 1);

  AparapiCDTrainer firstTrainer = TrainerFactory.cdSigmoidTrainer(firstRBM, null, null, null, null, 1f, 0f, 0f, 0f, 1, true);
  firstTrainer.setLayerCalculator(NNFactory.rbmSigmoidSigmoid(firstRBM));

  RBM secondRBM = dbn.getLastNeuralNetwork();

  AparapiCDTrainer secondTrainer = TrainerFactory.cdSigmoidTrainer(secondRBM, null, null, null, null, 1f, 0f, 0f, 0f, 1, true);
  secondTrainer.setLayerCalculator(NNFactory.rbmSigmoidSigmoid(secondRBM));

  Map<NeuralNetwork, OneStepTrainer<?>> layerTrainers = new HashMap<>();
  layerTrainers.put(firstRBM, firstTrainer);
  layerTrainers.put(secondRBM, secondTrainer);

  DNNLayerTrainer trainer = TrainerFactory.dnnLayerTrainer(dbn, layerTrainers, inputProvider, null, null);
  trainer.train();
 
  assertEquals(0.2 + 0.13203661, cg1.get(0, 0), 0.00001);
  assertEquals(0.4 - 0.22863509,  cg1.get(0, 1), 0.00001);
  assertEquals(-0.5 + 0.12887852, cg1.get(0, 2), 0.00001);
  assertEquals(-0.3 + 0.26158813, cg1.get(1, 0), 0.00001);
  assertEquals(0.1 - 0.3014404,  cg1.get(1, 1), 0.00001);
  assertEquals(0.2 + 0.25742438, cg1.get(1, 2), 0.00001);

  assertEquals(0.52276707, cgb1.get(0, 0), 0.00001);
  assertEquals(- 0.54617375, cgb1.get(1, 0), 0.00001);
  assertEquals(0.51522285, cgb1.get(2, 0), 0.00001);

  assertEquals(-0.4 - 0.08680013, cgb2.get(0, 0), 0.00001);
  assertEquals(0.2 - 0.02693379, cgb2.get(1, 0), 0.00001);
    }
View Full Code Here

  LayerCalculatorImpl lc = (LayerCalculatorImpl) dbn.getLayerCalculator();
  RBM firstRBM = dbn.getFirstNeuralNetwork();
  lc.addConnectionCalculator(firstRBM.getHiddenLayer(), new AparapiWeightedSumConnectionCalculator());

  Matrix m1 = firstRBM.getMainConnections().getConnectionGraph();
  m1.set(1, 0, 0);
  m1.set(0, 0, 1);
  m1.set(0, 0, 2);
  m1.set(0, 1, 0);
  m1.set(1, 1, 1);
  m1.set(0, 1, 2);
  m1.set(0, 2, 0);
  m1.set(0, 2, 1);
  m1.set(1, 2, 2);

  RBM secondRBM = dbn.getLastNeuralNetwork();
 
  Matrix cg1 = secondRBM.getMainConnections().getConnectionGraph();
  cg1.set(0.2f, 0, 0);
  cg1.set(0.4f, 0, 1);
  cg1.set(-0.5f, 0, 2);
  cg1.set(-0.3f, 1, 0);
  cg1.set(0.1f, 1, 1);
  cg1.set(0.2f, 1, 2);
 
  Matrix cgb1 = secondRBM.getVisibleBiasConnections().getConnectionGraph();
  cgb1.set(0f, 0, 0);
  cgb1.set(0f, 1, 0);
  cgb1.set(0f, 2, 0);
 
  Matrix cgb2 = secondRBM.getHiddenBiasConnections().getConnectionGraph();
  cgb2.set(-0.4f, 0, 0);
  cgb2.set(0.2f, 1, 0);
 
  SimpleInputProvider inputProvider = new SimpleInputProvider(new float[][] { { 1, 0, 1 } }, null, 1, 1);

  AparapiCDTrainer firstTrainer = TrainerFactory.cdSigmoidTrainer(firstRBM, null, null, null, null, 0f, 0f, 0f, 0f, 0, true);
  firstTrainer.setLayerCalculator(NNFactory.rbmSigmoidSigmoid(firstRBM));

  AparapiCDTrainer secondTrainer = TrainerFactory.cdSigmoidTrainer(secondRBM, null, null, null, null, 1f, 0f, 0f, 0f, 1, true);
  secondTrainer.setLayerCalculator(NNFactory.rbmSigmoidSigmoid(secondRBM));

  Map<NeuralNetwork, OneStepTrainer<?>> layerTrainers = new HashMap<>();
  layerTrainers.put(firstRBM, firstTrainer);
  layerTrainers.put(secondRBM, secondTrainer);
 
  DNNLayerTrainer trainer = TrainerFactory.dnnLayerTrainer(dbn, layerTrainers, inputProvider, null, null);
  trainer.train();
 
  assertEquals(0.2 + 0.13203661, cg1.get(0, 0), 0.00001);
  assertEquals(0.4 - 0.22863509,  cg1.get(0, 1), 0.00001);
  assertEquals(-0.5 + 0.12887852, cg1.get(0, 2), 0.00001);
  assertEquals(-0.3 + 0.26158813, cg1.get(1, 0), 0.00001);
  assertEquals(0.1 - 0.3014404,  cg1.get(1, 1), 0.00001);
  assertEquals(0.2 + 0.25742438, cg1.get(1, 2), 0.00001);
 
  assertEquals(0.52276707, cgb1.get(0, 0), 0.00001);
  assertEquals(- 0.54617375, cgb1.get(1, 0), 0.00001);
  assertEquals(0.51522285, cgb1.get(2, 0), 0.00001);
 
  assertEquals(-0.4 - 0.08680013, cgb2.get(0, 0), 0.00001);
  assertEquals(0.2 - 0.02693379, cgb2.get(1, 0), 0.00001);
    }
View Full Code Here

TOP

Related Classes of com.github.neuralnetworks.util.Matrix

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.