⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net.java

📁 bp神经网络的java程序
💻 JAVA
字号:
package structure;
/**
 * 神经网络中的一个网络类
 * */
public class Net {
    public Layer  layers[];     //隐层和输出层,0是隐层
    //public double[] output;     //
    public Net(){
    	//inLayer=new double[Parameter.getInstance().nodeNum[0]];
    	layers =new Layer[Parameter.getInstance().nodeNum.length-1];
    	Parameter para=Parameter.getInstance();
    	for(int i=0;i<layers.length;i++){
    		layers[i]=new Layer(para.nodeNum[i+1],para.nodeNum[i],para.func[i+1]);
    		//layers[i]=new Layer(para.nodeNum[i+1],para.nodeNum[i],para.func[i+1],i);    		
    		if(layers[i].neurons==null)
    			System.out.println("hello");
    	}	
    }
    /**
     * 计算一个网络的输出
     * in 神经网络的输入
     * @return  可以是多输出的网络,针对一次输入计算结果
     * */
    public double[] compute(double in[]){
    	double[] r; 
    	if (in.length!=Parameter.getInstance().nodeNum[0]){
    	    System.out.println("输入值的个数不对!");
    	    System.exit(1);
        }
    	r=in;
    	for(int i=0;i<layers.length;i++){
    		if (layers[i].neurons==null)
        		System.out.println("Q");
    		r=layers[i].compute(r);
    	}
        return r;
    }
    private double[] getInput(double[] in){
    	double[] out=new double[in.length-1];
    	for(int i=0;i<in.length;i++){
    		out[i]=in[i+1];
    	}
    	return out;
    }
    /**
     * 返回网络的输出
     * */
    public double[] getOutput(){
    	int    n=layers.length;
    	return layers[n-1].output;
    }
    /**
     * 打印网络的权重
     * */
    public void  printWeight(){
    	int numoflayer=layers.length;
    	for(int i=0;i<numoflayer;i++){
    		for(int j=0;j<layers[i].num;j++){
    			System.out.println("b="+layers[i].neurons[j].bias);
    			for(int k=0;k<layers[i].neurons[j].weight.length;k++)
    				System.out.println("w="+layers[i].neurons[j].weight[k]);
    		}
    	}
    }
}

⌨️ 快捷键说明

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