gradientbasedmethod.java

来自「利用Java实现的神经网络工具箱」· Java 代码 · 共 90 行

JAVA
90 行
字号
/* * Created on 09/10/2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */package neuralnetworktoolkit.methods.gradientbased;import neuralnetworktoolkit.methods.TrainingMethod;import neuralnetworktoolkit.neuralnetwork.INeuralNetwork;/** * @author iver * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Generation - Code and Comments */public abstract class GradientBasedMethod extends TrainingMethod {		/* (non-Javadoc)	 * @see neuralnetworktoolkit.methods.ITrainingMethod#train(neuralnetworktoolkit.INeuralNetwork, double, double[][], double[][], int[])	 */		/**	 * Calculates the neural network derivatives vector.	 * 	 * @param neuralNetwork Neural network to calculate derivatives	 * 						vector.	 * 	 * @return Derivatives vector.	 */	public double[] calculateDerivativesVector(INeuralNetwork neuralNetwork) {		int numberOfSynapses = neuralNetwork.numberOfSynapses();		double[] derivativesVector = new double[numberOfSynapses];		int index				   = 0;		int index2 				   = 0;								// calcula os termos do vetor de derivadas para a camada de saida		for (int i = (neuralNetwork.getNetworkSize() - 1);			i >= 0;			i--) {						for (int j = 0;				j < neuralNetwork.getLayer(i).getLayerSize();				j++) {								derivativesVector[index2] =					neuralNetwork.getLayer(i).getNeuron(j).getDelta();				index2++;				for (int k = 0;					k < neuralNetwork.getLayer(i).getWeightSize(j);					k++) {																if (i != 0) {							derivativesVector[index2] =								neuralNetwork									.getLayer(i)									.getNeuron(j)									.getDelta()									* neuralNetwork										.getLayer(i - 1)										.getNeuron(k)										.getOutputValue();							index2++;						} else {							derivativesVector[index2] =								neuralNetwork									.getLayer(i)									.getNeuron(j)									.getDelta()									* neuralNetwork.getStaticInputValues()[k];							index2++;						}									}			}		}		return derivativesVector;	} //calculateDerivativesVector()	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?