资源简介

在计算机上训练,将训练后的参数给单片机,单片机来仿真,之前已经在stm32f4上成功仿真过

资源截图

代码片段和文件信息

#include“BPNetwork.h“
#include
#include“rand.h“
#include
#include

//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////优化日记/////////////////////////////////////
//1、增加动量项
//2、学习速率可调




struct netnode **network=NULL;//神经网络的节点参数二维动态数组
struct netnode **network0 = NULL;//神经网络的节点参数二维动态数组
int *nodes_all=NULL;
int layer_all=0;
long maxepoch;
float xminmax[ROW_X][2];
float yminmax[ROW_Y][2];
float momentum_w=0;//增加动量项
float momentum_b = 0;//增加动量项
float mseerror = 0;//误差
float error0 = 100000;//上一个误差0
float speed = 0.1;//学习速率
float rate_w = 0.00;//动量项系数
float rate_b = 0.00;//动量项系数
float rate_w0 = 0.9;//动量项系数
float rate_b0 = 0.9;//动量项系数
float rate_up = 0.00001;//学习速率上升速率
float rate_down =0.001;//学习速率下降速率
void networkTrain(float x[ROW_X][COL_X] float y[ROW_Y][COL_Y] int layer int nodes[] int mode1)
{
//首先,建立神经网络节点
if (netSetup(ROW_X layer nodes ROW_Y))
{
// error(“网络节点建立失败“);
}

//然后,初始化参数
if (netInit())
{
// error(“网络参数初始化失败“);
}
//数据预处理,映射
minmax(x yxminmaxyminmax mode1);
//然后进入迭代求解
maxepoch = 80000;
netSolve(x y maxepoch 0.01 mode1);

//输出参数
if (OutPut())
{
printf(“输出参数失败\n“);
}
else
{
printf(“输出参数成功\n“);
}
//释放内存
if (freeNet())
{
printf(“内存释放失败\n“);
}
else
{
printf(“内存释放成功\n“);
}
}



//网络参数初始化
int netInit(void)
{
int i = 0 j = 0k=0;
for (i = 0; i < layer_all; i++)
{
for (j = 0; j < nodes_all[i]; j++)
{
network[i][j].b = random() / 65535.0 - 0.5;
network[i][j].b_change = random() / 65535.0 - 0.5;
network0[i][j].b_change = 0;
if (i != layer_all - 1)
{
network[i][j].w = (double*)malloc(sizeof(double)*nodes_all[i + 1]);
network0[i][j].w = (double*)malloc(sizeof(double)*nodes_all[i + 1]);
network[i][j].w_change = (double*)malloc(sizeof(double)*nodes_all[i + 1]);
network0[i][j].w_change = (double*)malloc(sizeof(double)*nodes_all[i + 1]);
}
}
}
for (i = 0; i < layer_all; i++)
{
for (j = 0; j < nodes_all[i]; j++)
{
if (i != layer_all - 1)
{
for (k = 0; k < nodes_all[i + 1]; k++)
{
network[i][j].w[k] = random() / 65535.0 - 0.5;;
network[i][j].w_change[k] = random() / 65535.0 - 0.5;
network0[i][j].w_change[k] = 0;
}
}
}
}
return 0;
}







//神经网络建立结构节点函数
//输入参数,输入层节点个数num_x,隐含层层数layer,隐含层每层节点数nodes,以及输出层节点数num_y
int netSetup(int num_x int layer int nodes[] int num_y)
{
int i = 0;

network = (struct netnode**)malloc(sizeof(struct netnode*)*(layer + 2));//申请行数
network0 = (struct netnode**)malloc(sizeof(struct netnode*)*(layer + 2));//申请行数
for (i = 0; i < layer + 2; i++)
{
if (i == 0)
{
network[i] = (struct netnode*)malloc(sizeof(struct netnode)*num_x);//申请每行列数
network0[i] = (struct netnode*)malloc(sizeof(struct netnode)*num_x);//申请每行列数
}
else if (i == layer + 1)
{
netwo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     50176  2018-12-28 00:26  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\.suo

     文件    2129920  2018-12-28 00:26  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\Browse.VC.db

     文件     327680  2018-12-13 13:29  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\ipch\AutoPCH\45445be9c13c68a2\RAND.ipch

     文件    2424832  2018-12-28 00:05  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\ipch\AutoPCH\9c48a7e196fdc380\MAIN.ipch

     文件    2949120  2018-12-28 00:04  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\ipch\AutoPCH\9cacd736fe3b2c0f\BPNETWORK.ipch

     文件    1966080  2018-12-27 23:25  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\ipch\AutoPCH\b6fefd1a23a5a56d\TEST.ipch

     文件    2883584  2018-12-28 00:16  shenjingwangluo\shenjingwangluo\.vs\shenjingwangluo\v15\ipch\AutoPCH\edf55c5fcdcbf066\BPSIM.ipch

     文件      66560  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.exe

     文件     417580  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.ilk

     文件     643072  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.pdb

     文件      13411  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\BPNetwork.c

     文件       2794  2018-12-27 23:15  shenjingwangluo\shenjingwangluo\shenjingwangluo\BPNetwork.h

     文件       4335  2018-06-10 16:06  shenjingwangluo\shenjingwangluo\shenjingwangluo\BPSim.c

     文件        766  2018-12-27 23:25  shenjingwangluo\shenjingwangluo\shenjingwangluo\BPSim.h

     文件        997  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\data.txt

     文件      38065  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\BPNetwork.obj

     文件      21862  2018-12-28 00:12  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\BPSim.obj

     文件      55077  2018-12-28 00:12  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\main.obj

     文件       3809  2018-12-28 00:12  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\rand.obj

     文件       1561  2018-12-28 00:12  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.Build.CppClean.log

     文件       2077  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.log

     文件       4396  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\CL.command.1.tlog

     文件      10904  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\CL.read.1.tlog

     文件       4084  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\CL.write.1.tlog

     文件       2204  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\link.command.1.tlog

     文件       4560  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\link.read.1.tlog

     文件       1370  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\link.write.1.tlog

     文件        230  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\shenjingwangluo.tlog\shenjingwangluo.lastbuildstate

     文件      10810  2018-12-28 00:12  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\test.obj

     文件      68608  2018-12-28 00:24  shenjingwangluo\shenjingwangluo\shenjingwangluo\Debug\vc141.idb

............此处省略31个文件信息

评论

共有 条评论