getLayer() public méthode

public getLayer ( ) : Layer
Résultat Layer
 public Matrix calculateWeightUpdates(LayerSensitivity layerSensitivity,
         Vector previousLayerActivationOrInput, double alpha, double momentum)
 {
     Layer layer = layerSensitivity.getLayer();
     Matrix activationTranspose = previousLayerActivationOrInput.transpose();
     Matrix momentumLessUpdate = layerSensitivity.getSensitivityMatrix()
             .times(activationTranspose).times(alpha).times(-1.0);
     Matrix updateWithMomentum = layer.getLastWeightUpdateMatrix().times(
             momentum).plus(momentumLessUpdate.times(1.0 - momentum));
     layer.acceptNewWeightUpdate(updateWithMomentum.copy());
     return updateWithMomentum;
 }
	public Matrix sensitivityMatrixFromSucceedingLayer(
			LayerSensitivity nextLayerSensitivity) {
		Layer nextLayer = nextLayerSensitivity.getLayer();
		Matrix derivativeMatrix = createDerivativeMatrix(layer
				.getLastInducedField());
		Matrix weightTranspose = nextLayer.getWeightMatrix().transpose();
		Matrix calculatedSensitivityMatrix = derivativeMatrix.times(
				weightTranspose).times(
				nextLayerSensitivity.getSensitivityMatrix());
		sensitivityMatrix = calculatedSensitivityMatrix.copy();
		return sensitivityMatrix;
	}
Exemple #3
0
        public static Matrix calculateWeightUpdates(
            LayerSensitivity layerSensitivity,
            Vector previousLayerActivationOrInput, double alpha)
        {
            Layer  layer = layerSensitivity.getLayer();
            Matrix activationTranspose = previousLayerActivationOrInput.transpose();
            Matrix weightUpdateMatrix  = layerSensitivity.getSensitivityMatrix()
                                         .times(activationTranspose).times(alpha).times(-1.0);

            layer.acceptNewWeightUpdate(weightUpdateMatrix.copy());
            return(weightUpdateMatrix);
        }
Exemple #4
0
        public Matrix calculateWeightUpdates(LayerSensitivity layerSensitivity,
                                             Vector previousLayerActivationOrInput, double alpha, double momentum)
        {
            Layer  layer = layerSensitivity.getLayer();
            Matrix activationTranspose = previousLayerActivationOrInput.transpose();
            Matrix momentumLessUpdate  = layerSensitivity.getSensitivityMatrix()
                                         .times(activationTranspose).times(alpha).times(-1.0);
            Matrix updateWithMomentum = layer.getLastWeightUpdateMatrix().times(
                momentum).plus(momentumLessUpdate.times(1.0 - momentum));

            layer.acceptNewWeightUpdate(updateWithMomentum.copy());
            return(updateWithMomentum);
        }
        public Matrix sensitivityMatrixFromSucceedingLayer(
            LayerSensitivity nextLayerSensitivity)
        {
            Layer  nextLayer        = nextLayerSensitivity.getLayer();
            Matrix derivativeMatrix = createDerivativeMatrix(layer
                                                             .getLastInducedField());
            Matrix weightTranspose             = nextLayer.getWeightMatrix().transpose();
            Matrix calculatedSensitivityMatrix = derivativeMatrix.times(
                weightTranspose).times(
                nextLayerSensitivity.getSensitivityMatrix());

            sensitivityMatrix = calculatedSensitivityMatrix.copy();
            return(sensitivityMatrix);
        }
Exemple #6
0
        public static Vector calculateBiasUpdates(
            LayerSensitivity layerSensitivity, double alpha)
        {
            Layer  layer            = layerSensitivity.getLayer();
            Matrix biasUpdateMatrix = layerSensitivity.getSensitivityMatrix()
                                      .times(alpha).times(-1.0);

            Vector result = new Vector(biasUpdateMatrix.getRowDimension());

            for (int i = 0; i < biasUpdateMatrix.getRowDimension(); i++)
            {
                result.setValue(i, biasUpdateMatrix.get(i, 0));
            }
            layer.acceptNewBiasUpdate(result.copyVector());
            return(result);
        }
Exemple #7
0
        public Vector calculateBiasUpdates(LayerSensitivity layerSensitivity,
                                           double alpha, double momentum)
        {
            Layer  layer = layerSensitivity.getLayer();
            Matrix biasUpdateMatrixWithoutMomentum = layerSensitivity
                                                     .getSensitivityMatrix().times(alpha).times(-1.0);

            Matrix biasUpdateMatrixWithMomentum = layer.getLastBiasUpdateVector()
                                                  .times(momentum).plus(
                biasUpdateMatrixWithoutMomentum.times(1.0 - momentum));
            Vector result = new Vector(biasUpdateMatrixWithMomentum
                                       .getRowDimension());

            for (int i = 0; i < biasUpdateMatrixWithMomentum.getRowDimension(); i++)
            {
                result.setValue(i, biasUpdateMatrixWithMomentum.get(i, 0));
            }
            layer.acceptNewBiasUpdate(result.copyVector());
            return(result);
        }
        public Vector calculateBiasUpdates(LayerSensitivity layerSensitivity,
                double alpha, double momentum)
        {
            Layer layer = layerSensitivity.getLayer();
            Matrix biasUpdateMatrixWithoutMomentum = layerSensitivity
                    .getSensitivityMatrix().times(alpha).times(-1.0);

            Matrix biasUpdateMatrixWithMomentum = layer.getLastBiasUpdateVector()
                    .times(momentum).plus(
                            biasUpdateMatrixWithoutMomentum.times(1.0 - momentum));
            Vector result = new Vector(biasUpdateMatrixWithMomentum
                    .getRowDimension());
            for (int i = 0; i < biasUpdateMatrixWithMomentum.getRowDimension(); i++)
            {
                result.setValue(i, biasUpdateMatrixWithMomentum.get(i, 0));
            }
            layer.acceptNewBiasUpdate(result.copyVector());
            return result;
        }
 public static Matrix calculateWeightUpdates(
         LayerSensitivity layerSensitivity,
         Vector previousLayerActivationOrInput, double alpha)
 {
     Layer layer = layerSensitivity.getLayer();
     Matrix activationTranspose = previousLayerActivationOrInput.transpose();
     Matrix weightUpdateMatrix = layerSensitivity.getSensitivityMatrix()
             .times(activationTranspose).times(alpha).times(-1.0);
     layer.acceptNewWeightUpdate(weightUpdateMatrix.copy());
     return weightUpdateMatrix;
 }
        public static Vector calculateBiasUpdates(
                LayerSensitivity layerSensitivity, double alpha)
        {
            Layer layer = layerSensitivity.getLayer();
            Matrix biasUpdateMatrix = layerSensitivity.getSensitivityMatrix()
                    .times(alpha).times(-1.0);

            Vector result = new Vector(biasUpdateMatrix.getRowDimension());
            for (int i = 0; i < biasUpdateMatrix.getRowDimension(); i++)
            {
                result.setValue(i, biasUpdateMatrix.get(i, 0));
            }
            layer.acceptNewBiasUpdate(result.copyVector());
            return result;
        }