nguyenwidrow.java
来自「利用Java实现的神经网络工具箱」· Java 代码 · 共 55 行
JAVA
55 行
/* * Created on 23/10/2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */package neuralnetworktoolkit.neuralnetwork.weightinitialization;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 class NguyenWidrow extends WeightInitialization { /* (non-Javadoc) * @see neuralnetworktoolkit.neuralnetwork.WeightInitialization#initialize() */ public void initialize(INeuralNetwork nn) { int numberOfHiddenNeurons = 0; int numberOfInputs = nn.getInputSize(); double range = 2; double factor; double weight, bias; for (int i = 0; i < nn.getNetworkSize() - 1; i++) { numberOfHiddenNeurons = numberOfHiddenNeurons + nn.getLayer(i).getLayerSize(); } System.out.println("nn: " + numberOfHiddenNeurons); //((0.7h^(1/i))/R) factor = (.7 * Math.pow(numberOfHiddenNeurons, 1 / numberOfInputs))/range; for (int i = (nn.getNetworkSize() - 1); i >= 0; i--) { for (int j = 0; j < nn.getLayer(i).getLayerSize(); j++) { bias = randomNumber(-factor, factor); nn.getLayer(i).setBias(bias, j); for (int k = 0; k < nn.getLayer(i).getWeightSize(j); k++) { weight = randomNumber(0, factor); nn.getLayer(i).setWeight(weight, k, j); } } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?