bp神经网络详细步骤C实现.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
bp神经网络详细步骤C实现

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System;using System.IO;using System.Text;namespace BpANNet{/// summary/// BpNet的摘要说明。/// /summarypublic class BpNet{public intinNum;//输入节点数inthideNum;//隐层节点数public intoutNum;//输出层节点数public intsampleNum;//样本总数Random R;double [] x;//输入节点的输入数据double [] x1;//隐层节点的输出double [] x2;//输出节点的输出double [] o1;//隐层的输入double [] o2;//输出层的输入public double [,] w;//权值矩阵w,这是输入层与隐藏层之间的权值矩阵public double [,] v;//权值矩阵V,这是隐藏层与输出层之间的权值矩阵public double [,] dw;//权值矩阵wpublic double [,] dv;//权值矩阵Vpublic double rate;//学习率public double [] b1;//隐层阈值矩阵public double [] b2;//输出层阈值矩阵public double [] db1;//隐层阈值矩阵public double [] db2;//输出层阈值矩阵double [] pp;//隐藏层的误差double[] qq;//输出层的误差double [] yd;//输出层的教师数据,所谓教师数据就是实际数据而已!public double e;//均方误差double in_rate;//归一化比例系数//用于确定隐藏层的神经细胞数public intcomputeHideNum(intm,int n){double s=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;}public BpNet(double [,] p,double [,] t){// 构造函数逻辑R=new Random();this.inNum=p.GetLength(1);this.outNum=t.GetLength(1);this.hideNum=computeHideNum(inNum,outNum);//this.hideNum=18;this.sampleNum=p.GetLength(0);Console.WriteLine(输入节点数目: +inNum);Console.WriteLine(隐层节点数目:+hideNum);Console.WriteLine(输出层节点数目:+outNum);Console.ReadLine();//将这些矩阵规定好矩阵大小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];//权值矩阵w,这是输入层与隐藏层之间的权值矩阵v=new double[hideNum,outNum];dw=new double[inNum,hideNum];dv=new double[hideNum,outNum];//阈值b1=new double[hideNum];b2=new double[outNum];db1=new double[hideNum];db2=new double[outNum];//误差pp = new double[hideNum];//隐藏层的误差qq = new double[outNum];//输出层的误差yd = new double[outNum];//输出层的教师数据//初始化wfor(int i=0;iinNum;i++){for(int j=0;jhideNum;j++){//NextDouble返回一个介于 0.0 和 1.0 之间的随机数。w[i,j]=(R.NextDouble()*2-1.0)/2;}}//初始化vfor(int i=0;ihideNum;i++){for(int j=0;joutNum;j++){v[i,j]=(R.NextDouble(

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档