Package com.github.neuralnetworks.architecture

Examples of com.github.neuralnetworks.architecture.Conv2DConnection


    @Test
    public void testDimensions() {
  // convolution dimensions
  Environment.getInstance().setUseWeightsSharedMemory(true);
  ConnectionFactory cf = new ConnectionFactory();
  Conv2DConnection conv = cf.conv2d(new Layer(), new Layer(), 4, 4, 3, 2, 2, 2, 1);

  assertEquals(3, conv.getOutputFeatureMapColumns(), 0);
  assertEquals(3, conv.getOutputFeatureMapRows(), 0);
  assertEquals(2, conv.getOutputFilters(), 0);

  // subsampling dimensions
  Subsampling2DConnection sub = cf.subsampling2D(new Layer(), new Layer(), 5, 5, 2, 2, 3);

  assertEquals(2, sub.getOutputFeatureMapColumns(), 0);
View Full Code Here


  Environment.getInstance().setUseWeightsSharedMemory(true);
  NeuralNetworkImpl nn = NNFactory.convNN(new int[][] { { 32, 32, 1 }, { 5, 5, 6, 1 }, { 2, 2 }, { 5, 5, 16, 1 }, { 2, 2 }, { 5, 5, 120, 1 }, {84}, {10} }, true);
  assertEquals(13, nn.getLayers().size(), 0);

  Layer l = nn.getInputLayer().getConnections().get(0).getOutputLayer();
  Conv2DConnection cc = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  assertEquals(28, cc.getOutputFeatureMapRows(), 0);
  assertEquals(28, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(6, cc.getOutputFilters(), 0);

  Subsampling2DConnection sc = (Subsampling2DConnection) l.getConnections().get(2);
  l = l.getConnections().get(2).getOutputLayer();
  assertEquals(14, sc.getOutputFeatureMapRows(), 0);
  assertEquals(14, sc.getOutputFeatureMapColumns(), 0);
  assertEquals(6, sc.getFilters(), 0);

  cc = (Conv2DConnection) l.getConnections().get(1);
  l = l.getConnections().get(1).getOutputLayer();
  assertEquals(10, cc.getOutputFeatureMapRows(), 0);
  assertEquals(10, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(16, cc.getOutputFilters(), 0);

  sc = (Subsampling2DConnection) l.getConnections().get(2);
  l = l.getConnections().get(2).getOutputLayer();
  assertEquals(5, sc.getOutputFeatureMapRows(), 0);
  assertEquals(5, sc.getOutputFeatureMapColumns(), 0);
  assertEquals(16, sc.getFilters(), 0);

  cc = (Conv2DConnection) l.getConnections().get(1);
  l = l.getConnections().get(1).getOutputLayer();
  assertEquals(1, cc.getOutputFeatureMapRows(), 0);
  assertEquals(1, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(120, cc.getOutputFilters(), 0);

  FullyConnected cg = (FullyConnected) l.getConnections().get(2);
  assertEquals(84, cg.getWeights().getRows(), 0);

  FullyConnected cg2 = (FullyConnected) cg.getOutputLayer().getConnections().get(2);
View Full Code Here

    public void testCNNConstruction2() {
  Environment.getInstance().setUseWeightsSharedMemory(true);
  NeuralNetworkImpl nn = NNFactory.convNN(new int[][] { { 28, 28, 1 }, { 5, 5, 20, 1 }, { 2, 2 }, { 5, 5, 50, 1 }, { 2, 2 }, {500}, {10} }, true);
  assertEquals(11, nn.getLayers().size(), 0);

  Conv2DConnection cc = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  Layer l = nn.getInputLayer().getConnections().get(0).getOutputLayer();
  assertEquals(24, cc.getOutputFeatureMapRows(), 0);
  assertEquals(24, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(20, cc.getOutputFilters(), 0);

  Subsampling2DConnection sc = (Subsampling2DConnection) l.getConnections().get(2);
  l = l.getConnections().get(2).getOutputLayer();
  assertEquals(12, sc.getOutputFeatureMapRows(), 0);
  assertEquals(12, sc.getOutputFeatureMapColumns(), 0);
  assertEquals(20, sc.getFilters(), 0);

  cc = (Conv2DConnection) l.getConnections().get(1);
  l = l.getConnections().get(1).getOutputLayer();
  assertEquals(8, cc.getOutputFeatureMapRows(), 0);
  assertEquals(8, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(50, cc.getOutputFilters(), 0);

  sc = (Subsampling2DConnection) l.getConnections().get(2);
  l = l.getConnections().get(2).getOutputLayer();
  assertEquals(4, sc.getOutputFeatureMapRows(), 0);
  assertEquals(4, sc.getOutputFeatureMapColumns(), 0);
View Full Code Here

    public void testCNNConstruction3() {
  Environment.getInstance().setUseWeightsSharedMemory(true);
  NeuralNetworkImpl nn = NNFactory.convNN(new int[][] { { 6, 6, 1 }, { 3, 3, 2, 2 }, { 2, 2 } }, true);
  assertEquals(4, nn.getLayers().size(), 0);

  Conv2DConnection cc = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  Layer l = nn.getInputLayer().getConnections().get(0).getOutputLayer();
  assertEquals(2, cc.getOutputFeatureMapRows(), 0);
  assertEquals(2, cc.getOutputFeatureMapColumns(), 0);
  assertEquals(2, cc.getOutputFilters(), 0);

  Subsampling2DConnection sc = (Subsampling2DConnection) l.getConnections().get(2);
  l = l.getConnections().get(2).getOutputLayer();
  assertEquals(1, sc.getOutputFeatureMapRows(), 0);
  assertEquals(1, sc.getOutputFeatureMapColumns(), 0);
View Full Code Here

    }

    @Test
    public void testConvolutions() {
  Environment.getInstance().setUseWeightsSharedMemory(true);
  Conv2DConnection c = new ConnectionFactory().conv2d(new Layer(), new Layer(), 3, 3, 2, 2, 2, 1, 1);

  c.getWeights().setElements(new float[] {1, 2, 3, 4, 1, 2, 3, 4});

  ValuesProvider vp = TensorFactory.tensorProvider(c, 1, true);
  TensorIterator it = vp.get(c.getInputLayer()).iterator();
  for (int i = 0; i < vp.get(c.getInputLayer()).getSize(); i++) {
      vp.get(c.getInputLayer()).getElements()[it.next()] = i + 1;
  }

  AparapiConv2D conv = new AparapiConv2DFF(c, vp, c.getOutputLayer());
  conv.calculate(c, vp, c.getOutputLayer());

  // most simple case
  Tensor o = vp.get(c.getOutputLayer());

  assertEquals(164, o.get(0, 0, 0, 0), 0);
  assertEquals(184, o.get(0, 0, 1, 0), 0);
  assertEquals(224, o.get(0, 1, 0, 0), 0);
  assertEquals(244, o.get(0, 1, 1, 0), 0);
View Full Code Here

  super(properties);
    }

    @Override
    protected void addBackpropFunction(List<Connections> inputConnections, Map<Connections, BackPropagationConnectionCalculator> connectionCalculators, ValuesProvider valuesProvider, ValuesProvider activations, Layer targetLayer) {
  Conv2DConnection con = null;
  for (Connections c : inputConnections) {
      if (c instanceof Conv2DConnection && !Util.isBias(c.getInputLayer())) {
    con = (Conv2DConnection) c;
    break;
      }
View Full Code Here

  super(properties);
    }

    @Override
    protected void addBackpropFunction(List<Connections> inputConnections, Map<Connections, BackPropagationConnectionCalculator> connectionCalculators, ValuesProvider valuesProvider, ValuesProvider activations, Layer targetLayer) {
  Conv2DConnection con = null;
  for (Connections c : inputConnections) {
      if (c instanceof Conv2DConnection && !Util.isBias(c.getInputLayer())) {
    con = (Conv2DConnection) c;
    break;
      }
View Full Code Here

  super(properties);
    }

    @Override
    protected void addBackpropFunction(List<Connections> inputConnections, Map<Connections, BackPropagationConnectionCalculator> connectionCalculators, ValuesProvider valuesProvider, ValuesProvider activatinos, Layer targetLayer) {
  Conv2DConnection con = null;
  for (Connections c : inputConnections) {
      if (c instanceof Conv2DConnection) {
    con = (Conv2DConnection) c;
    break;
      }
View Full Code Here

    }

    @Test
    public void testConvolutions2() {
  Environment.getInstance().setUseWeightsSharedMemory(true);
  Conv2DConnection c = new ConnectionFactory().conv2d(new Layer(), new Layer(), 3, 3, 2, 2, 2, 2, 1);
  c.getWeights().setElements(new float[] {1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4});

  ValuesProvider vp = TensorFactory.tensorProvider(c, 1, true);
  TensorIterator it = vp.get(c.getInputLayer()).iterator();
  for (int i = 0; i < vp.get(c.getInputLayer()).getSize(); i++) {
      vp.get(c.getInputLayer()).getElements()[it.next()] = i + 1;
  }

  AparapiConv2D conv = new AparapiConv2DFF(c, vp, c.getOutputLayer());
  conv.calculate(c, vp, c.getOutputLayer());

  Tensor o = vp.get(c.getOutputLayer());

  assertEquals(164, o.get(0, 0, 0, 0), 0);
  assertEquals(184, o.get(0, 0, 1, 0), 0);
  assertEquals(224, o.get(0, 1, 0, 0), 0);
  assertEquals(244, o.get(0, 1, 1, 0), 0);
View Full Code Here

  Environment.getInstance().setUseWeightsSharedMemory(true);
  NeuralNetworkImpl nn = NNFactory.convNN(new int[][] {{3, 3, 2}, {2, 2, 2, 1}, {2, 2}}, false);
  nn.setLayerCalculator(NNFactory.lcWeightedSum(nn, null));
  NNFactory.lcMaxPooling(nn);

  Conv2DConnection c = (Conv2DConnection) nn.getInputLayer().getConnections().get(0);
  c.getWeights().setElements(new float[] {1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4});

  ValuesProvider vp = TensorFactory.tensorProvider(nn, 1, true);
  TensorIterator it = vp.get(c.getInputLayer()).iterator();
  for (int i = 0; i < vp.get(c.getInputLayer()).getSize(); i++) {
      vp.get(c.getInputLayer()).getElements()[it.next()] = i + 1;
  }

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

TOP

Related Classes of com.github.neuralnetworks.architecture.Conv2DConnection

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.