Examples of Tensor


Examples of com.github.neuralnetworks.tensor.Tensor

  connections.add(result);
  return result;
    }

    public Conv2DConnection conv2d(Layer inputLayer, Layer outputLayer, int inputFeatureMapRows, int inputFeatureMapColumns, int inputFilters, int kernelRows, int kernelColumns, int outputFilters, int stride) {
  Tensor weights = null;
  if (useSharedWeights()) {
      int l = sharedWeights.length;
      sharedWeights = Arrays.copyOf(sharedWeights, l + outputFilters * inputFilters * kernelRows * kernelColumns);
      updateSharedWeights();
      weights = TensorFactory.tensor(sharedWeights, l, outputFilters, inputFilters, kernelRows, kernelColumns);
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

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

  RBM firstRBM = dbn.getFirstNeuralNetwork();

  Tensor t = firstRBM.getMainConnections().getWeights();
  float[] e1 = t.getElements();
  t.forEach(i -> e1[i] = 0.2f);
 
  t = firstRBM.getVisibleBiasConnections().getWeights();
  float[] e2 = t.getElements();
  t.forEach(i -> e2[i] = 0.1f);

  t = firstRBM.getHiddenBiasConnections().getWeights();
  float[] e3 = t.getElements();
  t.forEach(i -> e3[i] = 0.3f);

  RBM secondRBM = dbn.getLastNeuralNetwork();

  t = secondRBM.getMainConnections().getWeights();
  float[] e4 = t.getElements();
  t.forEach(i -> e4[i] = 0.4f);

  t = secondRBM.getVisibleBiasConnections().getWeights();
  float[] e5 = t.getElements();
  t.forEach(i -> e5[i] = 0.8f);

  t = secondRBM.getHiddenBiasConnections().getWeights();
  float[] e6 = t.getElements();
  t.forEach(i -> e6[i] = 0.5f);

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

  ValuesProvider results = TensorFactory.tensorProvider(dbn, 1, true);
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  Environment.getInstance().setUseWeightsSharedMemory(true);
  StackedAutoencoder sae = NNFactory.sae(new int [] {3, 2, 2}, true);
  sae.setLayerCalculator(NNFactory.lcWeightedSum(sae, null));

  Autoencoder firstAE = sae.getFirstNeuralNetwork();
  Tensor t = ((FullyConnected) firstAE.getConnection(firstAE.getInputLayer(), firstAE.getHiddenLayer())).getWeights();
  float[] e1 = t.getElements();
  t.forEach(i -> e1[i] = 0.2f);

  t = ((FullyConnected) firstAE.getConnection(firstAE.getHiddenBiasLayer(), firstAE.getHiddenLayer())).getWeights();
  float[] e2 = t.getElements();
  t.forEach(i -> e2[i] = 0.3f);

  t = ((FullyConnected) firstAE.getConnection(firstAE.getHiddenLayer(), firstAE.getOutputLayer())).getWeights();
  float[] e3 = t.getElements();
  t.forEach(i -> e3[i] = 0.8f);

  t = ((FullyConnected) firstAE.getConnection(firstAE.getOutputBiasLayer(), firstAE.getOutputLayer())).getWeights();
  float[] e4 = t.getElements();
  t.forEach(i -> e4[i] = 0.9f);

  Autoencoder secondAE = sae.getLastNeuralNetwork();

  t = ((FullyConnected) secondAE.getConnection(secondAE.getInputLayer(), secondAE.getHiddenLayer())).getWeights();
  float[] e5 = t.getElements();
  t.forEach(i -> e5[i] = 0.4f);
 
  t = ((FullyConnected) secondAE.getConnection(secondAE.getHiddenBiasLayer(), secondAE.getHiddenLayer())).getWeights();
  float[] e6 = t.getElements();
  t.forEach(i -> e6[i] = 0.5f);

  t = ((FullyConnected) secondAE.getConnection(secondAE.getHiddenLayer(), secondAE.getOutputLayer())).getWeights();
  float[] e7 = t.getElements();
  t.forEach(i -> e7[i] = 0.7f);

  t = ((FullyConnected) secondAE.getConnection(secondAE.getOutputBiasLayer(), secondAE.getOutputLayer())).getWeights();
  float[] e8 = t.getElements();
  t.forEach(i -> e8[i] = 0.9f);

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

  ValuesProvider results = TensorFactory.tensorProvider(sae, 1, true);
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  this.value = value;
    }

    @Override
    public void calculate(List<Connections> connections, ValuesProvider valuesProvider, Layer targetLayer) {
  Tensor t = TensorFactory.tensor(targetLayer, connections, valuesProvider);
  t.forEach(i -> t.getElements()[i] = value);
    }
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  if (c.getWeights().getSize() != weightUpdates.getSize()) {
      throw new IllegalArgumentException("weights and weightUpdates must have the same size");
  }

  Tensor t = TensorFactory.tensor(targetLayer, c, activations);
  this.ffActivation = t.getElements();
  this.activationStartIndex = t.getStartIndex();
  this.activationFeatureMapRowsDistance = t.getDimensionElementsDistance(1);
  this.activationFeatureMapColumnsDistance = t.getDimensionElementsDistance(2);

  this.weightUpdatesTensor = weightUpdates;
  this.weightUpdates = weightUpdates.getElements();
  this.weightUpdatesMomentum = new float[weightUpdates.getSize()];
    }
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

    protected final int stride;

    public AparapiConv2D(Conv2DConnection c, ValuesProvider valuesProvider, Layer targetLayer) {
  super();

  Tensor input = null, output = null;
  if (targetLayer == c.getOutputLayer()) {
      input = TensorFactory.tensor(Util.getOppositeLayer(c, targetLayer), c, valuesProvider);
      output = TensorFactory.tensor(targetLayer, c, valuesProvider);
  } else {
      input = TensorFactory.tensor(targetLayer, c, valuesProvider);
      output = TensorFactory.tensor(Util.getOppositeLayer(c, targetLayer), c, valuesProvider);
  }

  this.input = input.getElements();
  this.inputStartIndex = input.getStartIndex();
  this.inputFeatureMapRowsDistance = input.getDimensionElementsDistance(1);
  this.inputFeatureMapColumnsDistance = input.getDimensionElementsDistance(2);

  this.output = output.getElements();
  this.outputStartIndex =  output.getStartIndex();
  this.outputFeatureMapsDistance =  output.getDimensionElementsDistance(0);
  this.outputFeatureMapRowsDistance = output.getDimensionElementsDistance(1);
  this.outputFeatureMapColumnsDistance = output.getDimensionElementsDistance(2);
  this.outputMiniBatchDistance = output.getDimensionElementsDistance(3);

  this.weights = c.getWeights().getElements();
  this.weightsStartIndex = c.getWeights().getStartIndex();

  this.miniBatchSize = TensorFactory.batchSize(valuesProvider);
  this.outputColumns = c.getOutputFeatureMapColumns();
  this.outputFeatureMapLength = c.getOutputFeatureMapLength();
  this.stride = c.getStride();
  this.featureMapWeights = c.getKernelColumns() * c.getKernelRows() * c.getInputFilters();
  this.featureMapOffsets = new int[featureMapWeights * miniBatchSize];

  int inputMiniBatchDistance = input.getDimensionElementsDistance(3);
  int inputFeatureMapsDistance =  input.getDimensionElementsDistance(0);

  for (int m = 0, offset = 0; m < miniBatchSize; m++) {
      for (int i = 0; i < c.getInputFilters(); i++) {
    for (int j = 0; j < c.getKernelRows(); j++) {
        for (int k = 0; k < c.getKernelColumns(); k++) {
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

    protected final int outputFeatureMapLength;
    protected final int outputFeatureMapColumns;
    protected final int outputMiniBatchDistance;

    public AparapiSubsampling2D(Subsampling2DConnection c, ValuesProvider valuesProvider, Layer targetLayer) {
  Tensor input = null, output = null;
  if (targetLayer == c.getOutputLayer()) {
      input = TensorFactory.tensor(Util.getOppositeLayer(c, targetLayer), c, valuesProvider);
      output = TensorFactory.tensor(targetLayer, c, valuesProvider);
  } else {
      input = TensorFactory.tensor(targetLayer, c, valuesProvider);
      output = TensorFactory.tensor(Util.getOppositeLayer(c, targetLayer), c,  valuesProvider);
  }

  this.input = input.getElements();
  this.inputStartIndex = input.getStartIndex();
  this.inputFeatureMapsDistance =  input.getDimensionElementsDistance(0);
  this.inputFeatureMapRowsDistance = input.getDimensionElementsDistance(1);
  this.inputFeatureMapColumnsDistance = input.getDimensionElementsDistance(2);

  this.output = output.getElements();
  this.outputStartIndex =  output.getStartIndex();
  this.outputFeatureMapsDistance =  output.getDimensionElementsDistance(0);
  this.outputFeatureMapRowsDistance = output.getDimensionElementsDistance(1);
  this.outputFeatureMapColumnsDistance = output.getDimensionElementsDistance(2);
  this.outputMiniBatchDistance = output.getDimensionElementsDistance(3);
  this.outputFeatureMapLength = c.getOutputFeatureMapLength();
  this.outputFeatureMapColumns = c.getOutputFeatureMapColumns();

  this.miniBatchSize = input.getDimensions()[3];

  this.subsamplingRows = c.getSubsamplingRegionRows();
  this.subsamplingCols = c.getSubsamplingRegionCols();
  this.regionLength = c.getSubsamplingRegionLength();
  this.ioRowsOffset = (c.getInputFeatureMapRows() % subsamplingRows) / 2;
  this.ioColumnsOffset = (c.getInputFeatureMapColumns() % subsamplingCols) / 2;

  this.featureMapOffsets = new int[regionLength * miniBatchSize];
  int inputMiniBatchDistance = input.getDimensionElementsDistance(3);
  for (int m = 0, i = 0; m < miniBatchSize; m++) {
      for (int j = 0; j < subsamplingRows; j++) {
    for (int k = 0; k < subsamplingCols; k++) {
        featureMapOffsets[i++] = j * inputFeatureMapRowsDistance + k * inputFeatureMapColumnsDistance + m * inputMiniBatchDistance;
    }
 
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  return new AparapiConv2DFF(c, valuesProvider, targetLayer);
    }

    protected void calculateBias(Conv2DConnection bias, ValuesProvider vp) {
  if (bias != null) {
      Tensor biasValue = TensorFactory.tensor(bias.getInputLayer(), bias, vp);
      if (biasValue.getElements()[biasValue.getStartIndex()] == 0) {
    biasValue.forEach(i -> biasValue.getElements()[i] = 1);
      }

      Tensor v = TensorFactory.tensor(bias.getOutputLayer(), bias, vp);
      Tensor w = bias.getWeights();
      TensorIterator it = v.iterator();

      while (it.hasNext()) {
    v.getElements()[it.next()] = w.get(it.getCurrentPosition()[0], 0, 0, 0);
      }
  }
    }
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  Matrix im = tp.get(nn.getInputLayer());
  Matrix hm1 = tp.get(h, 3, 2);
  Matrix hm2 = tp.get(h, 4, 2);

  Tensor om = tp.get(o);

  assertTrue(im == tp.get(i, 2, 2));
  assertTrue(im == tp.get(i));
  assertTrue(hm1 == tp.get(h, 3, 2));
  assertTrue(hm2 == tp.get(h, 4, 2));
View Full Code Here

Examples of com.github.neuralnetworks.tensor.Tensor

  NNRandomInitializer rand = new NNRandomInitializer(new MersenneTwisterRandomInitializer(-0.1f, 0.1f), 0.5f);
  rand.initialize(nn);

  for (Layer l : nn.getLayers()) {
      if (Util.isBias(l)) {
    Tensor t = ((FullyConnected) l.getConnections().get(0)).getWeights();
    float[] elements = t.getElements();
    t.forEach(i -> assertEquals(0.5, elements[i], 0f));
      } else {
    Tensor t = ((FullyConnected) l.getConnections().get(0)).getWeights();
    float[] elements = t.getElements();
    t.forEach(i -> assertTrue(elements[i] >= -0.1f && elements[i] <= 0.1f && elements[i] != 0));
      }
  }

  rand = new NNRandomInitializer(new MersenneTwisterRandomInitializer(2f, 3f), new MersenneTwisterRandomInitializer(-2f, -1f));
  rand.initialize(nn);

  for (Layer l : nn.getLayers()) {
      if (Util.isBias(l)) {
    Tensor t = ((FullyConnected) l.getConnections().get(0)).getWeights();
    float[] elements = t.getElements();
    t.forEach(i -> assertTrue(elements[i] >= -2f && elements[i] <= -1f));
      } else {
    Tensor t = ((FullyConnected) l.getConnections().get(0)).getWeights();
    float[] elements = t.getElements();
    t.forEach(i -> assertTrue(elements[i] >= 2f && elements[i] <= 3f));
      }
  }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.