Package com.github.neuralnetworks.architecture

Examples of com.github.neuralnetworks.architecture.Conv2DConnection


        filters = layers[0][2];
    } else {
        for (Connections c : prev.getConnections()) {
      if (c.getOutputLayer() == prev) {
          if (c instanceof Conv2DConnection) {
        Conv2DConnection cc = (Conv2DConnection) c;
        inputFMRows = cc.getOutputFeatureMapRows();
        inputFMCols = cc.getOutputFeatureMapColumns();
        filters = cc.getOutputFilters();
        break;
          } else if (c instanceof Subsampling2DConnection) {
        Subsampling2DConnection sc = (Subsampling2DConnection) c;
        inputFMRows = sc.getOutputFeatureMapRows();
        inputFMCols = sc.getOutputFeatureMapColumns();
        filters = sc.getFilters();
        break;
          }
      }
        }
    }

    if (l.length == 4) {
        Conv2DConnection c = new Conv2DConnection(prev, newLayer = new Layer(), inputFMRows, inputFMCols, filters, l[0], l[1], l[2], l[3]);
        if (addBias) {
      new Conv2DConnection(biasLayer = new Layer(), newLayer, c.getOutputFeatureMapRows(), c.getOutputFeatureMapColumns(), 1, 1, 1, l[2], l[3]);
        }

        prevUnitCount = c.getOutputUnitCount();
    } else if (l.length == 2) {
        Subsampling2DConnection c = new Subsampling2DConnection(prev, newLayer = new Layer(), inputFMRows, inputFMCols, l[0], l[1], filters);
        prevUnitCount = c.getOutputUnitCount();
    }
      }

      result.addLayer(newLayer);
      if (biasLayer != null) {
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 FullyConnected) {
        FullyConnected cg = (FullyConnected) c;
        return cg.getWeights().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

        filters = layers[0][2];
    } else {
        for (Connections c : prev.getConnections()) {
      if (c.getOutputLayer() == prev) {
          if (c instanceof Conv2DConnection) {
        Conv2DConnection cc = (Conv2DConnection) c;
        inputFMRows = cc.getOutputFeatureMapRows();
        inputFMCols = cc.getOutputFeatureMapColumns();
        filters = cc.getOutputFilters();
        break;
          } else if (c instanceof Subsampling2DConnection) {
        Subsampling2DConnection sc = (Subsampling2DConnection) c;
        inputFMRows = sc.getOutputFeatureMapRows();
        inputFMCols = sc.getOutputFeatureMapColumns();
        filters = sc.getFilters();
        break;
          }
      }
        }
    }

    if (l.length == 4) {
        Conv2DConnection c = cf.conv2d(prev, newLayer = new Layer(), inputFMRows, inputFMCols, filters, l[0], l[1], l[2], l[3]);
        if (addBias) {
      cf.conv2d(biasLayer = new Layer(), newLayer, c.getOutputFeatureMapRows(), c.getOutputFeatureMapColumns(), 1, 1, 1, l[2], l[3]);
        }

        prevUnitCount = c.getOutputUnitCount();
    } else if (l.length == 2) {
        Subsampling2DConnection c = cf.subsampling2D(prev, newLayer = new Layer(), inputFMRows, inputFMCols, l[0], l[1], filters);
        prevUnitCount = c.getOutputUnitCount();
    }
      }

      result.addLayer(newLayer);
      if (biasLayer != null) {
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

  assertEquals(2, fc2.getWeights().getRows(), 0);
  assertEquals(5, fc2.getWeights().getColumns(), 0);
  fc2.getWeights().set(5, 1, 1);
  assertEquals(5, fc2.getWeights().get(1, 1), 0);

  Conv2DConnection c = f.conv2d(null, null, 3, 3, 3, 2, 2, 3, 1);
  assertEquals(52, c.getWeights().getElements().length, 0);
  assertEquals(36, c.getWeights().getSize(), 0);
  assertEquals(16, c.getWeights().getStartOffset(), 0);
  assertEquals(4, c.getWeights().getDimensions().length, 0);
    }
View Full Code Here

  this.weightUpdatesMomentum = new float[weightUpdates.getSize()];
    }

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

  for (Connections con : connections) {
      if (con instanceof Conv2DConnection) {
    c = (Conv2DConnection) con;
      }
  }

  if (c != null) {
      weightUpdatesTensor.forEach(i -> weightUpdates[i] = 0);

      // currently works only as a feedforward (including bp)
      if (targetLayer == c.getOutputLayer()) {
    super.calculate(c, valuesProvider, targetLayer);
      } else {
    super.calculate(c, valuesProvider, Util.getOppositeLayer(c, targetLayer));
      }
View Full Code Here

    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

  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

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.