神经网络c++程序

神经网络c++程序

ID:28826795

大小:60.00 KB

页数:13页

时间:2018-12-14

神经网络c++程序_第1页
神经网络c++程序_第2页
神经网络c++程序_第3页
神经网络c++程序_第4页
神经网络c++程序_第5页
资源描述:

《神经网络c++程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案/****************************************backprop.h***************************************/#ifndef_BACKPROP_H_#define_BACKPROP_H_#defineBIGRND0x7fffffff/***神经网络的数据结构。网络被假定为一个全连接的3层前向结构,每层的单元0是阈值,这意味着真正的神经元编号为1-n***/typedefstruct{intinput_n;/*输入层的神经元个数*/inthidden_n;/*隐

2、含层的神经元个数*/intoutput_n;/*输出层的神经元个数*/double*input_units;/*输入层的神经元*/double*hidden_units;/*隐含层的神经元*/double*output_units;/*输出层的神经元*/double*hidden_delta;/*隐含层的误差*/double*output_delta;/*输出层的误差*/double*target;/*目标向量*/double**input_weights;/*输入层到隐藏层的连接权*/double**hidden_weights;/*隐藏层

3、到输出层的连接权*//***下面两个在迭代时使用***/double**input_prev_weights;/*前次输入层到隐藏层权值的改变*/double**input_prev_weights;/*前次隐藏层到输出层权值的改变*/}BPNN;/***用户接口***//*初始化随机数种子*/voidbpnn_initialize(intseed);/*创建BP网络*/BPNN*bpnn_create(intn_in,intn_hidden,intn_out);/*释放BP网络所占地内存空间*/voidbpnn_free(BPNN*net)

4、;精彩文档实用标准文案/*训练BP网络*/voidbpnn_train(BPNN*net,doubleeta,doublemomentum,double*eo,double*eh);/*前向运算*/voidbpnn_feedforward(BPNN*net);/*保存BP网络到文件中*/voidbpnn_save(BPNN*net,char*filename);/*从文件中读取BP网络参数*/BPNN*bpnn_read(char*filename);#endif/**************************************b

5、ackprop.cpp*仅用于学习目的*************************************/#include"StdAfx.h"#include#include"backprop.h"#include#include#defineABX(x)(((x)>0.0?(x):(-(x)))/*宏定义:快速拷贝*/#definefastcopy(to,from,len){registerchar*_to,*from;registerint_i,_l;_to=(char

6、*)(to);_from=(char*)(from);_l=(len);for(_i=0;_i<_l;_i++)*_to++=*_from++;}/***返回0~1的双精度随机数***/精彩文档实用标准文案doubledrnd(){return((double)rand()/(double)BIGRND);}/***返回-1.0到1.0之间的双精度随机数***/doubledpn1(){return((drnd()*2.0)-1.0);}/***作用函数,目前是S型函数***///参数:x-自变量的值doublesquash(doub

7、lex){return(1.0/(1.0+exp(-x)));}/***申请1维双精度实数数组***///参数:n-数组的维数double*alloc_1d_dbl(intn){double*new1;new1=(double*)malloc((unsigned)(n*sizeof(double)));if(new1==NULL){printf("ALLOC_1D_DBL:Couldn'tallocatearrayofdoubles");return(NULL);}return(new1);}/***申请2维双精度实数数组***///参数

8、:m-数组的行数//n-数组的列数double**alloc_2d_dbl(intm,intn){inti;double**new1;new1=(double**)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。