www.pudn.com > jnntbeta0.2f.zip > BpNet.~jav
import java.util.Random;
public class BpNet extends Object {
int inNum; //输入接点数
int hideNum;//隐含接点数
int outNum; //输出接点数
Random R;
int epochs;
double x[]; //输入向量
double x1[];//隐含接点状态值
double x2[];//输出接点状态值
double o1[];
double o2[];
double w[][];//隐含接点权值
double w1[][];//输出接点权值
double rate_w; //权值学习率(输入层-隐含层)
double rate_w1;//权值学习率 (隐含层-输出层)
double rate_b1;//隐含层阀值学习率
double rate_b2;//输出层阀值学习率
double b1[];//隐含接点阀值
double b2[];//输出接点阀值
double pp[];
double qq[];
double yd[];
double e;
double in_rate;//输入归一化比例系数
public BpNet(int inNum,int hideNum,int outNum) {
R=new Random();
this.epochs=500;
this.inNum=inNum;
this.hideNum=hideNum;
this.outNum=outNum;
x=new double[inNum]; //输入向量
x1=new double[hideNum];//隐含接点状态值
x2=new double[outNum];//输出接点状态值
o1=new double[hideNum];
o2=new double[outNum];
w=new double[inNum][hideNum];//隐含接点权值
w1=new double[hideNum][outNum];//输出接点权值
b1=new double[hideNum];//隐含接点阀值
b2=new double[outNum];//输出接点阀值
pp=new double[hideNum];
qq=new double[outNum];
yd=new double[outNum];
for (int i=0;ipmax)
pmax=Math.abs(p[isamp][i]);
if (Math.abs(t[isamp][i])>pmax)
pmax=Math.abs(t[isamp][i]);
}
}//end for isamp
in_rate=pmax;
for(int isamp=0;isamp