Package com.github.neuralnetworks.architecture

Examples of com.github.neuralnetworks.architecture.Conv2DConnection


    protected Layer currentLayer;
    protected int miniBatchSize;

    @Override
    public void calculate(List<Connections> connections, ValuesProvider valuesProvider, Layer targetLayer) {
  Conv2DConnection c = null;
  Conv2DConnection bias = null;

  for (Connections con : connections) {
      if (con instanceof Conv2DConnection) {
    if (Util.isBias(con.getInputLayer())) {
        bias = (Conv2DConnection) con;
View Full Code Here


    public static boolean isBias(Layer layer) {
  if (layer.getConnections().size() == 1) {
      Connections c = layer.getConnections().get(0);
      if (c.getInputLayer() == layer) {
    if (c instanceof Conv2DConnection) {
        Conv2DConnection cc = (Conv2DConnection) c;
        return cc.getInputFilters() == 1 && cc.getInputFeatureMapRows() == cc.getOutputFeatureMapRows() && cc.getInputFeatureMapColumns() == cc.getOutputFeatureMapColumns();
    } else if (c instanceof GraphConnections) {
        GraphConnections cg = (GraphConnections) c;
        return cg.getConnectionGraph().getColumns() == 1;
    }
      }
View Full Code Here

     * @param layer
     * @return whether layer is in fact subsampling layer (based on the
     *         connections)
     */
    public static boolean isSubsampling(Layer layer) {
  Conv2DConnection conv = null;
  Subsampling2DConnection ss = null;
  for (Connections c : layer.getConnections()) {
      if (c instanceof Conv2DConnection) {
    conv = (Conv2DConnection) c;
      } else if (c instanceof Subsampling2DConnection) {
View Full Code Here

     * @param layer
     * @return whether layer is in fact convolutional layer (based on the
     *         connections)
     */
    public static boolean isConvolutional(Layer layer) {
  Conv2DConnection conv = null;
  Subsampling2DConnection ss = null;
  for (Connections c : layer.getConnections()) {
      if (c instanceof Conv2DConnection) {
    conv = (Conv2DConnection) c;
      } else if (c instanceof Subsampling2DConnection) {
    ss = (Subsampling2DConnection) c;
      }
  }

  if (conv != null && (conv.getOutputLayer() == layer || ss == null)) {
      return true;
  }

  return false;
    }
View Full Code Here

  super(properties);
    }

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

  super(properties);
    }

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

public class CNNTest {

    @Test
    public void testDimensions() {
  // convolution dimensions
  Conv2DConnection conv = new Conv2DConnection(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 = new Subsampling2DConnection(new Layer(), new Layer(), 5, 5, 2, 2, 3);

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

    public void testCNNConstruction() {
  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);

  GraphConnections cg = (GraphConnections) l.getConnections().get(2);
  assertEquals(84, cg.getConnectionGraph().getRows(), 0);

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

    @Test
    public void testCNNConstruction2() {
  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

        }
    } else {
        randomInitializer.initialize(fc.getConnectionGraph().getElements());
    }
      } else if (cc.connection instanceof Conv2DConnection) {
    Conv2DConnection c = (Conv2DConnection) cc.connection;
    if (Util.isBias(c.getInputLayer())) {
        if (biasDefaultValue != null) {
      Util.fillArray(c.getWeights(), biasDefaultValue);
        } else if (biasRandomInitializer != null) {
      biasRandomInitializer.initialize(c.getWeights());
        } else {
      randomInitializer.initialize(c.getWeights());
        }
    } else {
        randomInitializer.initialize(c.getWeights());
    }
      }
  }
    }
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.