📄 gradientbasedmethod.java
字号:
/* * 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -