网站大量收购独家精品文档,联系QQ:2885784924

bp神经网络实现异或功能(c++).pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include iostream.h #include iomanip.h #include stdlib.h #include math.h #include stdio.h #include time.h #include fstream.h #define N 4 //学习样本个数 #define T_N 4 //检验样本的个数 #define IN 2 //输入层神经元数目 #define HN 3 //隐层神经元数目 #define ON 1 //输出层神经元数目 //一般化误差数组 double delta_ON[N][ON]; double delta_HN[N][HN]; // double delta_IN[N][IN]; // double P[IN]; //单个样本输入数据 double P[N][IN]; //单个样本输入数据 // double T[ON]; //单个样本教师数据 double T[N][ON]; //单个样本教师数据 double W[HN][IN]; //输入层至隐层权值 double V[ON][HN]; //隐层至输出层权值 double X[HN]; //隐层的输入 double Y[ON]; //输出层的输入 // double H[HN]; // 隐层的输出 double H[N][HN]; //隐层的输出 double O[ON]; //输出层的输出 double YU_HN[HN]; //隐层的阈值 double YU_ON[ON]; //输出层的阈值 // double err_m[N]; //第 m 个样本的总误差 double err_m[N][ON]; //第 m 个样本的总误差 double sum_err_m[N]; double a1; //输出层至隐层的学习效率 double a2; double b1; //隐层至输入层学习效率 double b2; ofstream out_test_result( test_result.txt, ios::out ); //定义一个放学习样本的结构 struct { double input[IN]; //输入在上面定义是一个 double teach[ON]; //输出在上面定义也是一个 }Study_Data[N];//学习样本 //定义一个放检测样本的结构 struct { double input[IN]; //输入在上面定义是一个 double teach[ON]; //输出在上面定义也是一个 }Test_Data[T_N];//检测样本 /////////////////////////// //初始化权、阈值子程序///// /////////////////////////// initial() { // 隐层权、阈值初始化// srand( (unsigned)time( NULL ) ); for(int i=0;iHN;i++) for(int j=0;jIN;j++) W[i][j]= rand()/double(RAND_MAX); for(int ii=0;iiON;ii++) for(int jj=0;jjHN;jj++) V[ii][jj]=rand()/double(RAND_MAX); for(int k=0;kHN;k++) YU_HN[k]=rand()/double(RAND_MAX); for(int kk=0;kkON;kk++) YU_ON[kk]=rand()/double(RAND_MAX); return 1; }//子程序 initial()结束 //////////////////////////////// ////第 m 个学习样本输入子程序/// /////////////////////////////// Train_input_P(int m) { for (int i=0;iIN;i++) P[m][i]=Study_Data[m].input[i]; //获得第 m 个样本的数据 return 1; }//子程序 Train_input_P(m )结束 Test_input_P(int m) { for (int i=0;iIN;i++)

文档评论(0)

137****0427 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档