layer.java

来自「java写的bp神经网络的java程序」· Java 代码 · 共 61 行

JAVA
61
字号
package structure;
/**
 * 网络中的一个层(隐层或输出层)
 * 一层中有几个神经元就有几个输出
 * */
public class Layer {
    public int     num;               //一层中神经元的个数,也即输出的个数
    public Neuron  neurons[];
    public double  output[];          //该层计算后的输出
    /**
     * 随机初始化<p>
     * @param num              该层中神经元的个数
     * @param lastLayerOutNum  上一层的输出数目
     * @param func             该层的传输函数
     * */
    Layer(int num,int lastLayerOutNum,Function func){
    	this.num =num;
    	neurons  =new Neuron[num];
    	output   =new double[num];
    	for(int i=0;i<num;i++){
    		neurons[i]=new Neuron(lastLayerOutNum,func);
    	}
    	if (neurons==null)
    		System.out.println("Q");
    }
    /**
     * 按参数初始化<p>
     * @param num              该层中神经元的个数
     * @param lastLayerOutNum  上一层的输出数目
     * @param func             该层的传输函数
     * @param layer            第几层
     * */
    Layer(int num,int lastLayerOutNum,Function func,int layer){
    	this.num=num;
    	neurons =new Neuron[num];
    	output  =new double[num];
    	for(int i=0;i<num;i++){
    		neurons[i]=new Neuron(lastLayerOutNum,func,layer,i);
    	}
    	if (neurons==null)
    		System.out.println("Q");
    }
    /**
     * 该层的输出
     * */
    public double[] getOutput(){
    	for(int i=0;i<num;i++){
    		output[i]=neurons[i].getOutput();
    	}
    	return output;
    }
    /**
     * 计算该层的输出
     * */
    public double[] compute(double in[]){
    	for(int i=0;i<neurons.length;i++){
    		output[i]=neurons[i].compute(in);
    	}
    	return output;
    }
}

⌨️ 快捷键说明

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