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 + -
显示快捷键?