Package com.github.neuralnetworks.util

Examples of com.github.neuralnetworks.util.Matrix


    private static final long serialVersionUID = 1L;

    @Override
    public Matrix convert(Object[] input) {
  Matrix m = new Matrix(1, input.length);

  for (int i = 0; i < input.length; i++) {
      m.set((int) input[i], 0, i);
  }

  return m;
    }
View Full Code Here


      int[] indexes = new int[length];
      for (int i = 0; i < length; i++) {
    indexes[i] = elementsOrder.remove(random.nextInt(elementsOrder.size()));
      }

      Matrix input = getImages(indexes);

      Matrix target = targetConverter.convert(getLabels(indexes));

      result = new TrainingInputDataImpl(input, target);
  }

  return result;
View Full Code Here

    }

    private Matrix getImages(int[] indexes) {
  int size = cols * rows;
  if (tempImages == null || tempImages.getRows() != indexes.length) {
      tempImages = new Matrix(size, indexes.length);
  }

  try {
      for (int i = 0; i < indexes.length; i++) {
    images.seek(16 + size * indexes[i]);
 
View Full Code Here

    private Matrix convertedTarget;

    @Override
    public Matrix convert(Object[] input) {
  if (convertedTarget == null || convertedTarget.getColumns() != input.length) {
      convertedTarget = new Matrix(10, input.length);
  } else {
      Util.fillArray(convertedTarget.getElements(), 0);
  }

  for (int i = 0; i < input.length; i++) {
View Full Code Here

  this.random = new Random();
  this.useRandom = useRandom;
  this.scale = scale;
  this.attachTargetToInput = attachTargetToInput;
  this.dataset = createDataset();
  this.currentExample = new TrainingInputDataImpl(new Matrix(dataset.getRows() - 1 + (attachTargetToInput == true ? 1 : 0), batchSize));
  reset();
    }
View Full Code Here

    6.5,3.0,5.2,2.0,2,
    6.2,3.4,5.4,2.3,2,
    5.9,3.0,5.1,1.8,2
  };

  Matrix result = new Matrix(new float[d.length], 150);
  for (int i = 0; i < d.length; i++) {
      result.set((float) d[i], i % 5, i / 5);
  }

  if (scale) {
      for (int i = 0; i < result.getRows() - 1; i++) {
    float max = result.get(i, 0);
    for (int j = 0; j < result.getColumns(); j++) {
        if (result.get(i, j) > max) {
      max = result.get(i, j);
        }
    }

    for (int j = 0; j < result.getColumns(); j++) {
        result.set(result.get(i, j) / max, i, j);
    }
      }
  }
  return result;
    }
View Full Code Here

    private TrainingInputData input;

    public XorInputProvider(int inputSize) {
  super();
  this.inputSize = inputSize;
  this.input = new TrainingInputDataImpl(new Matrix(2, 1), new Matrix(1, 1));
    }
View Full Code Here

    private Matrix convertedTarget;

    @Override
    public Matrix convert(Object[] input) {
  if (convertedTarget == null || convertedTarget.getColumns() != input.length) {
      convertedTarget = new Matrix(3, input.length);
  } else {
      Util.fillArray(convertedTarget.getElements(), 0);
  }

  for (int i = 0; i < input.length; i++) {
View Full Code Here

    protected void learnInput(TrainingInputData data, int batch) {
  RBM nn = getNeuralNetwork();

  posPhaseVisible = data.getInput();
  if (negPhaseVisible == null || negPhaseVisible.getColumns() != posPhaseVisible.getColumns()) {
      negPhaseVisible = new Matrix(posPhaseVisible.getRows(), posPhaseVisible.getColumns());
      posPhaseHidden = new Matrix(nn.getMainConnections().getConnectionGraph().getRows(), posPhaseVisible.getColumns());
      negPhaseHidden = new Matrix(nn.getMainConnections().getConnectionGraph().getRows(), posPhaseVisible.getColumns());
  }

  getLayerCalculator().gibbsSampling(nn, posPhaseVisible, posPhaseHidden, negPhaseVisible, negPhaseHidden, getGibbsSamplingCount(), batch == 0 ? true : getResetRBM(), true);

  // update weights
View Full Code Here

    @Test
    public void testOneStepContrastiveDivergence() {
  RBM rbm = NNFactory.rbm(3, 2, true);

  Matrix cg1 = rbm.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 = rbm.getVisibleBiasConnections().getConnectionGraph();
  cgb1.set(0f, 0, 0);
  cgb1.set(0f, 1, 0);
  cgb1.set(0f, 2, 0);

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

  AparapiCDTrainer t = TrainerFactory.cdSigmoidTrainer(rbm, new SimpleInputProvider(new float[][] { { 1, 0, 1 } }, null, 1, 1), null, null, null, 1f, 0f, 0f, 0f, 1, true);
  t.setLayerCalculator(NNFactory.rbmSigmoidSigmoid(rbm));

  Environment.getInstance().setExecutionMode(EXECUTION_MODE.SEQ);

  t.train();

  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);

  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);
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.