- 10
- 0
- 约5.52千字
- 约 9页
- 2017-02-01 发布于重庆
- 举报
C实现的BP神经网络代码
#pragma hdrstop#include stdio.h#include iostream.hconst A=30.0;const B=10.0;const MAX=500; //最大训练次数const COEF=0.0035; //网络的学习效率const BCOEF=0.001;//网络的阀值调整效率const ERROR=0.002; // 网络训练中的允许误差const ACCURACY=0.0005;//网络要求精度double sample[41][4]={{0,0,0,0},{5,1,4,19.020},{5,3,3,14.150},{5,5,2,14.360},{5,3,3,14.150},{5,3,2,15.390},{5,3,2,15.390},{5,5,1,19.680},{5,1,2,21.060},{5,3,3,14.150},{5,5,4,12.680},{5,5,2,14.360},{5,1,3,19.610},{5,3,4,13.650},{5,5,5,12.430},{5,1,4,19.020},{5,1,4,19.020},{5,3,5,13.390},{5,5,4,12.680},{5,1,3,19.610},{5,3,2,15.390},{1,3,1,11.110},{1,5,2,6.521},{1,1,3,10.190},{1,3,4,6.043},{1,5,5,5.242},{1,5,3,5.724},{1,1,4,9.766},{1,3,5,5.870},{1,5,4,5.406},{1,1,3,10.190},{1,1,5,9.545},{1,3,4,6.043},{1,5,3,5.724},{1,1,2,11.250},{1,3,1,11.110},{1,3,3,6.380},{1,5,2,6.521},{1,1,1,16.000},{1,3,2,7.219},{1,5,3,5.724}};double w[4][10][10],wc[4][10][10],b[4][10],bc[4][10];double o[4][10],netin[4][10],d[4][10],differ;//单个样本的误差double is; //全体样本均方差int count,a;void netout(int m, int n);//计算网络隐含层和输出层的输出void calculd(int m,int n); //计算网络的反向传播误差void calcalwc(int m,int n);//计算网络权值的调整量void calcaulbc(int m,int n); //计算网络阀值的调整量void changew(int m,int n); //调整网络权值void changeb(int m,int n);//调整网络阀值void clearwc(int m,int n);//清除网络权值变化量wcvoid clearbc(int m,int n);//清除网络阀值变化量bc-void initialw(void);//初始化NN网络权值Wvoid initialb(void); //初始化NN网络阀值void calculdiffer(void);//计算NN网络单个样本误差void calculis(void);//计算NN网络全体样本误差void trainNN(void);//训练NN网络//------------------------------------------------------------------------------------------------- ---------------////------------------------------------------------------------------------------------------------- ---------------//
//------------------------------------------------------------------------------------------------- ---------------//
/*计算NN网络隐含层和输出层的输出 */void netout(int m,int n){int i,j,k;//隐含层各节点的的输出for (j=1,i=2;j=m;j++) //m为隐含层节点个数{netin[i][j]=0.0;for(k=1;k=3;k++)
原创力文档

文档评论(0)