神經网络C++程序.docVIP

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

/* ************************************** *backprop.h ************************************** */ #ifndef_BACKPROP_H_ #define_BACKPROP_H_ #define BIGRND 0x7fffffff /***神经网络的数据结构。网络被假定为一个全连接的3层前向结构, 每层的单元0是阈值,这意味着真正的神经元编号为1-n ***/ typedef struct{ int input_n; /*输入层的神经元个数*/ int hidden_n; /*隐含层的神经元个数*/ int output_n; /*输出层的神经元个数*/ double *input_units; /*输入层的神经元*/ double *hidden_units; /*隐含层的神经元*/ double *output_units; /*输出层的神经元*/ double *hidden_delta; /*隐含层的误差*/ double *output_delta; /*输出层的误差*/ double *target; /*目标向量*/ double **input_weights; /*输入层到隐藏层的连接权*/ double **hidden_weights; /*隐藏层到输出层的连接权*/ /***下面两个在迭代时使用***/ double **input_prev_weights; /*前次输入层到隐藏层权值的改变*/ double **input_prev_weights; /*前次隐藏层到输出层权值的改变*/ }BPNN; /***用户接口***/ /*初始化随机数种子*/ void bpnn_initialize(int seed); /*创建BP网络*/ BPNN *bpnn_create(int n_in,int n_hidden,int n_out); /*释放BP网络所占地内存空间*/ void bpnn_free(BPNN *net); /*训练BP网络*/ void bpnn_train(BPNN *net,double eta,double momentum,double*eo,double *eh); /*前向运算*/ void bpnn_feedforward(BPNN *net); /*保存BP网络到文件中*/ void bpnn_save(BPNN *net,char *filename); /*从文件中读取BP网络参数*/ BPNN *bpnn_read(char *filename); #endif /* ************************************ *backprop.cpp *仅用于学习目的 ************************************ */ #include StdAfx.h #include stdio.h #include backprop.h #include math.h #include stdlib.h #define ABX(x) (((x)0.0?(x):(-(x))) /*宏定义:快速拷贝*/ #define fastcopy(to,from,len)\ {\ register char *_to,*from;\ register int _i,_l;\ _to=(char *)(to);\ _from=(char *)(from);\ _l=(len);\ for(_i=0;_i_l;_i++) *_to++=*_from++;\ } /***返回0~1的双精度随机数***/ double drnd() { return((double) rand()/(double) BIGRND); } /***返回-1.0到1.0之间的双精度随机数***/ double dpn1() { return((drnd()*2.0)-1.0); } /***作用函数,目前是S型函数***/ //参数:x-自变量的值 double squash(double x) {return(1.0/(1.0+exp(-x))); } /***申请1维双精度实数数组***/ //参数:n-数组的维数 double *alloc_1d_dbl(int n) { double *new1; new1=(double *)malloc ((unsigned)(n*sizeof(d

文档评论(0)

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

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

1亿VIP精品文档

相关文档