




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include #include #define OUT_COUT 2 /输出向量维数#define IN_COUT 3 /输入向量维数#define COUT 6 /样本数量typedef struct /bp人工神经网络结构 int h; /实际使用隐层数量 double vIN_COUT50; /隐藏层权矩阵i,隐层节点最大数量为50 double w50OUT_COUT; /输出层权矩阵 double a; /学习率 double b; /精度控制参数 int LoopCout; /最大循环次数 bp_nn;double fnet(double net) /Sigmoid函数,神经网络激活函数 return 1/(1+exp(-net);int InitBp(bp_nn *bp) /初始化bp网络 printf(请输入隐层节点数,最大数为100:n); scanf(%d, &(*bp).h); printf(请输入学习率:n); scanf(%lf, &(*bp).a); /(*bp).a为double型数据,所以必须是lf printf(请输入精度控制参数:n); scanf(%lf, &(*bp).b); printf(请输入最大循环次数:n); scanf(%d, &(*bp).LoopCout); int i, j; srand(unsigned)time(NULL); for (i = 0; i IN_COUT; i+) for (j = 0; j (*bp).h; j+) (*bp).vij = rand() / (double)(RAND_MAX); for (i = 0; i (*bp).h; i+) for (j = 0; j OUT_COUT; j+) (*bp).wij = rand() / (double)(RAND_MAX); return 1;int TrainBp(bp_nn *bp, float xCOUTIN_COUT, int yCOUTOUT_COUT) /训练bp网络,样本为x,理想输出为y double f = (*bp).b; /精度控制参数 double a = (*bp).a; /学习率 int h = (*bp).h; /隐层节点数 double vIN_COUT50, w50OUT_COUT; /权矩阵 double ChgH50, ChgOOUT_COUT; /修改量矩阵 double O150, O2OUT_COUT; /隐层和输出层输出量 int LoopCout = (*bp).LoopCout; /最大循环次数 int i, j, k, n; double temp; for (i = 0; i IN_COUT; i+) / 复制结构体中的权矩阵 for (j = 0; j h; j+) vij = (*bp).vij; for (i = 0; i h; i+) for (j = 0; j f & n LoopCout; n+) /对每个样本训练网络 e = 0; for (i= 0; i COUT; i+) for (k= 0; k h; k+) /计算隐层输出向量 temp = 0; for (j = 0; j IN_COUT; j+) temp = temp + xij * vjk; O1k = fnet(temp); for (k = 0; k OUT_COUT; k+) /计算输出层输出向量 temp = 0; for (j = 0; j h; j+) temp = temp + O1j * wjk; O2k = fnet(temp); for (j = 0; j OUT_COUT; j+) /计算输出层的权修改量 ChgOj = O2j * (1 - O2j) * (yij - O2j); for (j = 0; j OUT_COUT ; j+) /计算输出误差 e = e + (yij - O2j) * (yij - O2j); for (j = 0; j h; j+) /计算隐层权修改量 temp = 0; for (k = 0; k OUT_COUT; k+) temp = temp + wjk * ChgOk; ChgHj = temp * O1j * (1 - O1j); for (j = 0; j h; j+) /修改输出层权矩阵 for (k = 0; k OUT_COUT; k+) wjk = wjk + a * O1j * ChgOk; for (j = 0; j IN_COUT; j+) for (k = 0; k h; k+) vjk = vjk + a * xij * ChgHk; if (n % 10 = 0) printf(误差 : %fn, e); printf(总共循环次数:%dn, n); printf(调整后的隐层权矩阵:n); for (i = 0; i IN_COUT; i+) for (j = 0; j h; j+) printf(%f , vij); printf(n); printf(调整后的输出层权矩阵:n); for (i = 0; i h; i+) for (j = 0; j OUT_COUT; j+) printf(%f , wij); printf(n); for (i = 0; i IN_COUT; i+) /把结果复制回结构体 for (j = 0; j h; j+) (*bp).vij = vij; for (i = 0; i h; i+) for (j = 0; j OUT_COUT; j+) (*bp).wij = wij; printf(bp网络训练结束!n); return 1;int UseBp(bp_nn *bp) /使用bp网络 float InputIN_COUT; double O150; double O2OUT_COUT; /O1为隐层输出,O2为输出层输出 while (1) /持续执行,除非中断程序 printf(请输入3个数:n); int i, j; for (i = 0; i IN_COUT; i+) scanf(%f, &Inputi); double temp; for (i = 0; i (*bp).h; i+) temp = 0; for (j = 0; j IN_COUT; j+) temp += Inputj * (*bp).vji; O1i = fnet(temp); for (i = 0; i OUT_COUT; i+) temp = 0; for (j = 0; j (*bp).h; j+) temp += O1j * (*bp).wji; O2i = fnet(temp); printf(结果: ); for (i = 0; i OUT_COUT; i+) printf(%.3f , O2i); printf(n); return 1;int main() float xCOUTIN_COUT = 0.8,0.5,0, 0.9,0.7,0.3, 1,0.8,0.5, 0,0.2,0.3, 0.2,0.1,1.3, 0.2,0.7,0.8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案
- 家具搭配专业知识培训课件
- 2025年初入职场必-备面试技巧与模拟题解答手册
- 长春工程学院《电子商务》2024-2025学年第一学期期末试卷
- 2025年炼钢专业高级职位面试要点及模拟题详解
- 桂林学院《管理沟通》2024-2025学年第一学期期末试卷
- 湖北黄冈应急管理职业技术学院《细胞分子生物学》2024-2025学年第一学期期末试卷
- 盘锦职业技术学院《平面构成》2024-2025学年第一学期期末试卷
- 铁门关职业技术学院《信息检索与分析》2024-2025学年第一学期期末试卷
- 2025年初阶火电运行值班员实务模拟题与解析
- 新生儿病房护理安全管理
- 乘客遗失物品处理课件
- 美编设计面试题目及答案
- 2025年云南省中考物理真题(含答案)
- 肿瘤患者有效沟通技巧
- 医院科室停电应急预案
- 2025-2030中国工业用地开发与产业升级分析报告
- 2025年教育学家教学理论考试试题及答案解析
- 2025年医疗器械不良事件培训考试试题(有答案)
- 第1课 互联网和物联网 课件 2025-2026学年七年级下册信息技术浙教版
- 信息技术在课堂教学中的应用
评论
0/150
提交评论