资源简介
将模拟退火算法应用于神经网络中,可解决神经网络算法易陷入局部极小和收敛速度慢的问题
代码片段和文件信息
// shengjingnet.cpp : 定义控制台应用程序的入口点。
#include “stdafx.h“
#define INput 7 //输入特征参数的种类
#define OUTput 4 //所分类别的个数
#define TrainNum 40 //共多少个训练数据
int t=0;
double EfrontTT0;
#define M pow(float(10)6)*4 //循环次数
#include “backprop.h“
double **traindata;
int class_num[TrainNum];
void Data_Get()
{
traindata=alloc_2d_dbl(TrainNumINput);
char str[1000];
int i=0j;
FILE *f;
char* pNext;
f=fopen(“TrainData.txt““r“);
if(f==NULL)
{
printf(“Errorfile don‘t open\n“);
}
while(!feof(f))
{
fgets(str1000f);
class_num[i]=atoi(str);
pNext=str;
for(j=0;j {
pNext=strchr(pNext+1‘‘);
traindata[i][j]=atof(pNext+1);
}
i++;
}
fclose(f);
}
void Data_Deal(double maxt[INput]double mint[INput])
{
int ij;
for(i=0;i {
maxt[i]=mint[i]=traindata[0][i];
for(j=0;j {
if(maxt[i] {
maxt[i]=traindata[j][i];
}
if(mint[i]>traindata[j][i])
{
mint[i]=traindata[j][i];
}
}
for(j=0;j {
//traindata[j][i]=(traindata[j][i]-mint[i])/(maxt[i]-mint[i]);
traindata[j][i]=2*(traindata[j][i]-mint[i])/(maxt[i]-mint[i])-1;
}
}
}
void output_result(BPNN *newl)
{
double *Nout;
int i;
Nout = (double *) malloc ((unsigned) ((OUTput+1) * sizeof (double)));
if (Nout == NULL) {
printf(“ALLOC_1D_DBL: Couldn‘t allocate array of doubles\n“);
}
int ONE=0ZERO=0;
int NUM;
for(i=1;i<=OUTput;i++)
{
if(newl->output_units[i]<0.5)
{
Nout[i]=0;
}
if(newl->output_units[i]>0.5)
{
Nout[i]=1;
}
if(newl->output_units[i]==0.5)
{
Nout[i]=-1;
}
}
for(i=1;i<=OUTput;i++)
{
if(Nout[i]==1)
{
ONE=ONE+1;
NUM=i;
}
if(Nout[i]==0)
{
ZERO=ZERO+1;
}
if(Nout[i]==-1)
{
printf(“无法判别其所属类别“);
break;
}
}
if(ONE==1 && ZERO>=1)
{
printf(“判断其属于第 %d 类\n“NUM);
}
else
{
printf(“无法判别其所属的类别\n“);
}
free(Nout);
Nout=NULL;
for(i=1;i<=OUTput;i++)
{
printf(“输出为:%3f \n“newl->output_units[i]);
}
}
int _tmain(int argc _TCHAR* argv[])
{
BPNN *net;
BPNN *news;
bpnn_initialize(0);
int ijn;
int hid_num;
double maxs[INput];
double mins[INput];
//hid_num=sqrtf(INput+OUTput)+1; //隐含层神经元个数可调节公式,其中常数可以取1到10之间
hid_num=sqrtf(0.43*INput*OUTput+0.12*OUTput*OUTput+2.54*INput+0.77*OUTput+0.35+0.51);
net=bpnn_create(INputhid_numOUTput);
news = bpnn_internal_create(INputhid_numOUTput);
Data_Get();
Data_Deal(maxsmins);
for(j=0;j {
net->input_units[j+1]=traindata[0][j]; //将训练数据输入神经网络
}
//输入训练数据应该所属的类别
n=class_num[0];
for(j=1;j<=OUTput;j++)
{
if(j==n)
{
net->target[j]=1;
}
else
{
net->target[j]=0;
}
}
if(t==0)
{
simulated_annealing_Init(net);
}
//根据traindata中的数据训练神经网络
while(1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 88576 2013-06-06 15:59 SA_BPnet_train\Debug\shengjingnet.exe
文件 1242756 2013-06-06 15:59 SA_BPnet_train\Debug\shengjingnet.ilk
文件 1010688 2013-06-06 15:59 SA_BPnet_train\Debug\shengjingnet.pdb
文件 2359296 2013-06-07 09:37 SA_BPnet_train\ipch\shengjingnet-920f2d2f\shengjingnet-53889310.ipch
文件 11877 2013-06-07 09:45 SA_BPnet_train\shengjingnet\backprop.h
文件 1530 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\cl.command.1.tlog
文件 8498 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\CL.read.1.tlog
文件 882 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\CL.write.1.tlog
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 2500 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 4810 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 944 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\li
文件 420 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\mt.command.1.tlog
文件 350 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\mt.read.1.tlog
文件 350 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\mt.write.1.tlog
文件 590 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\rc.command.1.tlog
文件 322 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\rc.read.1.tlog
文件 330 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\rc.write.1.tlog
文件 406 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\shengjingnet.exe.em
文件 472 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\shengjingnet.exe.em
文件 381 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\shengjingnet.exe.intermediate.manifest
文件 58 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\shengjingnet.lastbuildstate
文件 3308 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\shengjingnet.log
文件 204742 2013-06-06 15:59 SA_BPnet_train\shengjingnet\Debug\shengjingnet.obj
文件 1179648 2013-06-06 11:14 SA_BPnet_train\shengjingnet\Debug\shengjingnet.pch
............此处省略39个文件信息
- 上一篇:FPGA课程设计-硬件乐曲演奏Verilog HDL
- 下一篇:5G网络规划探讨
相关资源
- VC编写的云台控制程序
- BS ISO 22839 2013
- VCPDriver_V1.1_Setup.exe
- TMS320VC5502程序
- CodeSmith生成MVC4项目工程模板V1.0.12.0
- SBASparse Bundle Adjustment的VC2010版本
- 基于TMS320VC5509的CCS软件设计集 郑海波
- 基于VC的包过滤防火墙论文源码有效地
- 多个工业用的仪表控件
- excel版BP神经网络,公式运算
- AIS 数据接收和监听
- 驾校管理信息系统——很有用的信息
- 编译FFmpeg3.2.2生成的库文件及头文件
- springmvcDemo
- 华为认证HCNA-WLAN无线H12-311题库.vce
- 新闻管理系统MVC的模式
- vc 操作word插入图片做签名
- 《网络监控系统原理与应用》源码
- 很不错的图像融合VC程序!
- 用vc实现资源管理器功能
- 基于web的仓库管理系统
- 人工神经网络理论、设计及应用.pdf
- GB0 371 381 391 华三se认证考试题库加
- dlib 32位库 19.10.0_release_32bit_msvc1913.l
- sift算法VC实现需要OPENCV
- VCDS 5053 1.96固件可升级5053线支持最新
- BP神经网络的算法改进及应用
- VC使用vfw控制摄像头拍照的程序
- Spring+SpringMVC+Mybatis SSM三大框架的运行
- 电梯调度操作系统模拟线程管理
评论
共有 条评论