欢迎来到天天文库
浏览记录
ID:50529548
大小:23.26 KB
页数:12页
时间:2020-03-10
《bp神经网络详细步骤c实现.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem;usingSystem.IO;usingSystem.Text;namespaceBpANNet{//////BpNet的摘要说明。///publicclassBpNet{publicintinNum;//输入节点数inthideNum;//隐层节点数publicintoutNum;//输出层节点数publicints
2、ampleNum;//样本总数RandomR;double[]x;//输入节点的输入数据double[]x1;//隐层节点的输出double[]x2;//输出节点的输出double[]o1;//隐层的输入double[]o2;//输出层的输入publicdouble[,]w;//权值矩阵w,这是输入层与隐藏层之间的权值矩阵publicdouble[,]v;//权值矩阵V,这是隐藏层与输出层之间的权值矩阵publicdouble[,]dw;//权值矩阵wpublicdouble[,]dv;//权值矩阵Vpublicdoublerate
3、;//学习率publicdouble[]b1;//隐层阈值矩阵publicdouble[]b2;//输出层阈值矩阵publicdouble[]db1;//隐层阈值矩阵publicdouble[]db2;//输出层阈值矩阵double[]pp;//隐藏层的误差double[]qq;//输出层的误差double[]yd;//输出层的教师数据,所谓教师数据就是实际数据而已!publicdoublee;//均方误差doublein_rate;//归一化比例系数//用于确定隐藏层的神经细胞数publicintcomputeHideNum(in
4、tm,intn){doubles=Math.Sqrt(0.43*m*n+0.12*n*n+2.54*m+0.77*n+0.35)+0.51;intss=Convert.ToInt32(s);return((s-(double)ss)>0.5)?ss+1:ss;}publicBpNet(double[,]p,double[,]t){//构造函数逻辑R=newRandom();this.inNum=p.GetLength(1);this.outNum=t.GetLength(1);this.hideNum=computeHideNum(
5、inNum,outNum);//this.hideNum=18;this.sampleNum=p.GetLength(0);Console.WriteLine("输入节点数目:"+inNum);Console.WriteLine("隐层节点数目:"+hideNum);Console.WriteLine("输出层节点数目:"+outNum);Console.ReadLine();//将这些矩阵规定好矩阵大小x=newdouble[inNum];x1=newdouble[hideNum];x2=newdouble[outNum];o1=
6、newdouble[hideNum];o2=newdouble[outNum];w=newdouble[inNum,hideNum];//权值矩阵w,这是输入层与隐藏层之间的权值矩阵v=newdouble[hideNum,outNum];dw=newdouble[inNum,hideNum];dv=newdouble[hideNum,outNum];//阈值b1=newdouble[hideNum];b2=newdouble[outNum];db1=newdouble[hideNum];db2=newdouble[outNum];/
7、/误差pp=newdouble[hideNum];//隐藏层的误差qq=newdouble[outNum];//输出层的误差yd=newdouble[outNum];//输出层的教师数据//初始化wfor(inti=0;i8、+){v[i,j]=(R.NextDouble()*2-1.0)/2;}}rate=0.8;e=0.0;in_rate=1.0; }//训练函数publicvoidtrain(double[,]p,double[,]t){e=0.0;
8、+){v[i,j]=(R.NextDouble()*2-1.0)/2;}}rate=0.8;e=0.0;in_rate=1.0; }//训练函数publicvoidtrain(double[,]p,double[,]t){e=0.0;
此文档下载收益归作者所有