资源简介
神经网络反向传播算法的代码实现 可以直接运行
代码片段和文件信息
#include “stdlib.h“
#include “math.h“
#include “conio.h“
#include “stdio.h“
#include “time.h“
#define N 1 /*学习样本个数(测试样本个数)*/
#define IN 4 /*输入层神经元数目*/
#define HN 3 /*隐层神经元数目*/
#define HN1 2/*隐层神经元数目*/
#define ON 1 /*输出层神经元数目*/
float P[IN]; /*单个样本输入数据*/
float T[ON]; /*单个样本教师数据*/
float W[HN][IN]; /*输入层至隐层权值*/
float W1[HN1][HN]; /*输入层至隐层权值*/
float V[ON][HN1]; /*隐层至输出层权值*/
float X[HN]; /*隐层的输入*/
float X1[HN1]; /*隐层的输入*/
float Y[ON]; /*输出层的输入*/
float H[HN]; /*隐层的输出*/
float H1[HN1]; /*隐层的输出*/
float O[ON]; /*输出层的输出*/
float YU_HN[HN]; /*隐层的阈值*/
float YU_HN1[HN1]; /*隐层的阈值*/
float YU_ON[ON]; /*输出层的阈值*/
float err_m[N]; /*第m个样本的总误差*/
float a1; /*输出层至隐层学习效率*/
float a; /*(输出)yi层至隐层学习效率*/
float b; /*隐层至输入层学习效率*/
float alpha; /*/动量因子,改进型bp算法使用*/
float d_err[ON];/*δk*/
float e_err1[HN1];/*δj*/
float e_err[HN];/*δj*/
FILE *fp;
/*定义一个放学习样本的结构*/
struct {
float input[IN];
float teach[ON];
}Study_Data[N];
/*定义一个放测试样本的结构*/
struct {
float input[IN];
float expect[ON];
}Test_Data[N];
/*改进型bp算法用来保存每次计算的权值*/
float old_W[HN][IN];
float old_V[ON][HN];
float old_W1[ON][HN];
int Start_Show()
{
//clrscr();
system(“cls“);
printf(“\n *********************** \n“);
printf(“ * Welcome to use *\n“);
printf(“ * this program of *\n“);
printf(“ * calculating the BP *\n“);
printf(“ * model! *\n“);
printf(“ * Happy every day! *\n“);
printf(“ ***********************\n“);
printf(“\n\nBefore startingplease read the follows carefully:\n\n“);
printf(“ The program of BP can study itself for no more than 200000 times.\nAnd surpassing the numberthe program will be ended by itself in\npreventing running infinitely because of error!\n“);
printf(“\n\n\n“);
printf(“Now press any key to start...\n“);
getch();
//clrscr();
system(“cls“);
return 1;
}
int End_Show()
{
printf(“\n\n---------------------------------------------------\n“);
printf(“The program has reached the end successfully!\n\nPress any key to exit!\n\n“);
printf(“\n ***********************\n“);
printf(“ * This is the end *\n“);
printf(“ * of the program which*\n“);
printf(“ * can calculate the BP*\n“);
printf(“ * model! *\n“);
printf(“ ***********************\n“);
printf(“ * Thanks for using! *\n“);
printf(“ * Happy every day! *\n“);
printf(“ ***********************\n“);
getch();
exit(0);
}
/*读取训练样本*/
GetTrainingData()
{int ijm;
float datr;
if((fp=fopen(“sample.txt““r“))==NULL)
{
printf(“Cannot open file strike any key exit!“);
getch();
exit(1);
}
for(i=0;i {j=0;
while(j!=(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 529 2009-05-06 15:34 bp.dsw
文件 50176 2009-05-07 21:53 bp.ncb
文件 88 2009-05-07 21:24 sample.txt
文件 440 2009-05-07 21:50 weight.txt
文件 867 2009-05-07 21:50 bp.plg
文件 174 2009-05-07 21:50 limit.txt
文件 9 2009-05-07 20:33 test.txt
文件 48640 2009-05-07 21:53 bp.opt
文件 41984 2009-05-07 21:50 Debug\vc60.idb
文件 53248 2009-05-07 21:49 Debug\vc60.pdb
文件 235464 2009-05-07 20:49 Debug\bp.pch
文件 295408 2009-05-07 21:50 Debug\bp.ilk
文件 258097 2009-05-07 21:50 Debug\bp.exe
文件 615424 2009-05-07 21:50 Debug\bp.pdb
文件 43773 2009-05-07 21:49 Debug\bp.obj
文件 0 2009-05-06 15:34 bp.asp
文件 15299 2009-05-07 21:52 bp.cpp
文件 4230 2009-05-07 21:53 bp.dsp
目录 0 2009-05-06 15:34 Debug
----------- --------- ---------- ----- ----
1663850 19
相关资源
- 遗传算法的BP神经网络优化算法
- 基于BP神经网络的企业核心竞争力评价
- BP神经网络的基本原理
- 毕业设计《BP神经网络搭建实现PID控制
- BP神经网络程序非工具箱
- BP神经网络实验报告
- BP神经网络代码
- 思维进化算法应用于优化BP神经网络的
- BP神经网路的变压器故障检测.zip
- 识别0-9十个数字,BP神经网络数字识别
- BP神经网络法确定工程材料评价指标的
- GA-BP遗传算法优化神经网络
- kalman-BP神经网络
- 基于遗传算法的BP神经网络优化算法
- BP神经网络fortran仿真程序
- BP神经网络训练预测控制算法
- 运用BP神经网络识别26个英文字母源代
- 基于BP神经网络模型的森林空气质量评
- 基于BP神经网络的数据集训练和测试
- 基于BP神经网络PID整定原理和算法步骤
- BP神经网络用于分类与回归
- 基于自适应性BP神经网络的优化算法
- 采煤工作面瓦斯涌出量LMD-BP神经网络
- 基于BP神经网络和SVM的个人信用评估比
- 基于遗传算法优化的BP神经网络
- 遗传算法GA进行BP神经网络的优化
- BP_regression.zip
- BP神经网络训练过程详细
- 基于BP神经网络的人脸识别
- 退火遗传算法优化BP神经网络用改进的
评论
共有 条评论