- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)