Package com.github.neuralnetworks.calculation.memory

Examples of com.github.neuralnetworks.calculation.memory.ValuesProvider


  nn.setLayerCalculator(NNFactory.lcWeightedSum(nn, null));

  Conv2DConnection cc = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  cc.getWeights().forEach(i -> cc.getWeights().getElements()[i] = 1);

  ValuesProvider vp = TensorFactory.tensorProvider(nn, 1, true);
  float[] src = 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};
  System.arraycopy(src, 0, vp.get(nn.getInputLayer()).getElements(), vp.get(nn.getInputLayer()).getStartIndex(), src.length);

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

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


  cnn.setLayerCalculator(NNFactory.lcSigmoid(cnn, null));
  NNFactory.lcMaxPooling(cnn);
  FullyConnected cnnfc = (FullyConnected) cnn.getOutputLayer().getConnections().get(0);
  cnnfc.getWeights().set(0.05f, 0, 0);
  cnnfc.getWeights().set(0.08f, 0, 1);
  ValuesProvider cnnvp = TensorFactory.tensorProvider(cnn, 1, Environment.getInstance().getUseDataSharedMemory());
  Tensor cnnin = cnnvp.get(cnn.getInputLayer());
  cnnin.set(0.2f, 0, 0, 0, 0);
  cnnin.set(0.6f, 0, 1, 0, 0);

  // MLP
  NeuralNetworkImpl mlp = NNFactory.mlpSigmoid(new int[] { 2, 1 }, false);
  FullyConnected mlpfc = (FullyConnected) mlp.getOutputLayer().getConnections().get(0);
  mlpfc.getWeights().set(0.05f, 0, 0);
  mlpfc.getWeights().set(0.08f, 0, 1);
  ValuesProvider mlpvp = TensorFactory.tensorProvider(mlp, 1, Environment.getInstance().getUseDataSharedMemory());
  Tensor mlpin = mlpvp.get(mlp.getInputLayer());
  mlpin.set(0.2f, 0, 0);
  mlpin.set(0.6f, 1, 0);

  // compare ff
  Set<Layer> calculated = new HashSet<>();
  calculated.add(cnn.getInputLayer());
  cnn.getLayerCalculator().calculate(cnn, cnn.getOutputLayer(), calculated, cnnvp);

  calculated = new HashSet<>();
  calculated.add(mlp.getInputLayer());
  mlp.getLayerCalculator().calculate(mlp, mlp.getOutputLayer(), calculated, mlpvp);

  assertTrue(Arrays.equals(cnnvp.get(cnn.getOutputLayer()).getElements(), mlpvp.get(mlp.getOutputLayer()).getElements()));
    }
View Full Code Here

  cg1.set(0.8f, 0, 1);
  cg1.set(0.4f, 1, 0);
  cg1.set(0.6f, 1, 1);


  ValuesProvider vp = TensorFactory.tensorProvider(rbm, 1, true);
  Matrix visible = vp.get(rbm.getVisibleLayer());
  visible.set(0.35f, 0, 0);
  visible.set(0.9f, 1, 0);

  Set<Layer> calculated = new HashSet<Layer>();
  calculated.add(rbm.getVisibleLayer());
  rbm.getLayerCalculator().calculate(rbm, rbm.getHiddenLayer(), calculated, vp);

  Matrix hidden = vp.get(rbm.getHiddenLayer());
  assertEquals(0.68, hidden.get(0, 0), 0.01);
  assertEquals(0.6637, hidden.get(1, 0), 0.01);
    }
View Full Code Here

  cg1.set(0.1f, 0, 0);
  cg1.set(0.8f, 1, 0);
  cg1.set(0.4f, 0, 1);
  cg1.set(0.6f, 1, 1);
 
  ValuesProvider vp = TensorFactory.tensorProvider(rbm, 1, true);
  Matrix hidden = vp.get(rbm.getHiddenLayer());
  hidden.set(0.35f, 0, 0);
  hidden.set(0.9f, 1, 0);
 
  Set<Layer> calculated = new HashSet<Layer>();
  calculated.add(rbm.getHiddenLayer());
  rbm.getLayerCalculator().calculate(rbm, rbm.getVisibleLayer(), calculated, vp);
 
  Matrix visible = vp.get(rbm.getVisibleLayer());
  assertEquals(0.68, visible.get(0, 0), 0.01);
  assertEquals(0.6637, visible.get(1, 0), 0.01);
    }
View Full Code Here

  Matrix cgb1 = rbm.getHiddenBiasConnections().getWeights();
  cgb1.set(-0.4f, 0, 0);
  cgb1.set(0.2f, 1, 0);

  ValuesProvider vp = TensorFactory.tensorProvider(rbm, 1, true);
  Matrix visible = vp.get(rbm.getVisibleLayer());
  visible.set(1f, 0, 0);
  visible.set(0f, 1, 0);
  visible.set(1f, 2, 0);

  Set<Layer> calculated = new HashSet<Layer>();
  calculated.add(rbm.getVisibleLayer());
  rbm.getLayerCalculator().calculate(rbm, rbm.getHiddenLayer(), calculated, vp);

  Matrix hidden = vp.get(rbm.getHiddenLayer());
  assertEquals(0.332, hidden.get(0, 0), 0.001);
  assertEquals(0.525, hidden.get(1, 0), 0.001);
    }
View Full Code Here

  Matrix cgb1 = rbm.getVisibleBiasConnections().getWeights();
  cgb1.set(-0.4f, 0, 0);
  cgb1.set(0.2f, 1, 0);

  ValuesProvider vp = TensorFactory.tensorProvider(rbm, 1, true);
  Matrix hidden = vp.get(rbm.getHiddenLayer());
  hidden.set(1f, 0, 0);
  hidden.set(0f, 1, 0);
  hidden.set(1f, 2, 0);

  Set<Layer> calculated = new HashSet<Layer>();
  calculated.add(rbm.getHiddenLayer());
  rbm.getLayerCalculator().calculate(rbm, rbm.getVisibleLayer(), calculated, vp);

  Matrix visible = vp.get(rbm.getVisibleLayer());
  assertEquals(0.332, visible.get(0, 0), 0.001);
  assertEquals(0.525, visible.get(1, 0), 0.001);
    }
View Full Code Here

     * @param miniBatchSize
     * @param useSharedMemory
     * @return Tensor provider based on neural network
     */
    public static ValuesProvider tensorProvider(NeuralNetwork nn, int miniBatchSize, boolean useSharedMemory) {
  ValuesProvider result = new ValuesProvider(useSharedMemory);

  Map<Layer, Set<int[]>> dims = getLayersDimensions(nn, miniBatchSize);

  // create tensors
  List<Layer> layers = new ArrayList<>(dims.keySet());
  for (int i = 0; i < layers.size(); i++) {
      Layer l = layers.get(i);
      for (int[] d : dims.get(l)) {
    result.add(l, true, d);
      }
  }

  return result;
    }
View Full Code Here

     * @param useSharedMemory
     * @param nns
     * @return Tensor provider based on multiple neural networks - common layers use shared tensors
     */
    public static ValuesProvider tensorProvider(int miniBatchSize, boolean useSharedMemory, NeuralNetwork... nns) {
  ValuesProvider result = new ValuesProvider(useSharedMemory);

  for (NeuralNetwork nn : nns) {
      Map<Layer, Set<int[]>> dims = getLayersDimensions(nn, miniBatchSize);
     
      // create tensors
      List<Layer> layers = new ArrayList<>(dims.keySet());
      for (int i = 0; i < layers.size(); i++) {
    Layer l = layers.get(i);
    for (int[] d : dims.get(l)) {
        if (result.get(l, d) == null) {
      result.add(l, true, d);
        }
    }
      }
  }

View Full Code Here

     * @return Tensor provider based on neural network
     */
    public static ValuesProvider tensorProvider(ValuesProvider sibling, NeuralNetwork nn) {
  Map<Layer, Set<int[]>> dims = getLayersDimensions(nn, batchSize(sibling));
 
  ValuesProvider result = new ValuesProvider(sibling);

  // create tensors
  List<Layer> layers = new ArrayList<>(dims.keySet());
  for (int i = 0; i < layers.size(); i++) {
      Layer l = layers.get(i);
      for (int[] d : dims.get(l)) {
    result.add(l, true, d);
      }
  }
 
  return result;
    }
View Full Code Here

TOP

Related Classes of com.github.neuralnetworks.calculation.memory.ValuesProvider

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.