代码拉取完成,页面将自动刷新
/**
******************************************************************************
* @file bpNeuralNetwork2.h
* @author 古么宁
* @brief 径向基 rbf 神经网络
* 使用方法:
* 1. RBFNN_CREATE(NAME,INN,OUTN,NRNN) ;创建一个神经网络
* 2. struct rbfnntrain rbftrcfg; 定义训练参数
* 3. rbfnn_init(NAME);对神经网络的内存进行初始化
* 4. rbfnn_train(&rbfnn,&traincfg,sample_in,sample_out,size);用样点训练神经网络
* 5. rbfnn_calulate() ;用此函数进行计算预测
* <注:此文件用到变长数组,要C99以上或GNUC版本编译器支持>
******************************************************************************
*
* COPYRIGHT(c) 2018 GoodMorning
*
******************************************************************************
*/
/* Includes ---------------------------------------------------*/
#ifndef RBF_NEURALNETWORK_H__
#define RBF_NEURALNETWORK_H__
/* Public macro (共有宏)------------------------------------------------------------*/
/*
* @brief BPNN_CREATE
* 创建一个神经网络
* @param NAME : 此神经网络的名称
* @param INN : 此神经网络输入端个数
* @param OUTN : 此神经网络输出端个数
* @param NRNN : 此神经网络神经元个数
*/
#define RBFNN_CREATE(NAME,INN,OUTN,NRNN)\
double NAME##buf[(INN)*(NRNN) + (OUTN)*(NRNN) + (NRNN)] = {0};\
rbfnn_t NAME = {.in=(INN), .out=(OUTN), .nrnn=(NRNN),.Ci=NAME##buf}
/* Public types ------------------------------------------------------------*/
typedef struct rbfnntrain
{
uint32_t maxt ; //最多训练次数
double limit ; //训练结束误差界限
double eta ; //学习速率,建议不超过0.01,取决于所逼近曲线的变化率,变化率越大这个值要越小
}
rbfnntr_t;
typedef struct rbf_neuralnetwork
{
uint32_t in ; //网络输入端个数
uint32_t out; //网络输出端个数
uint32_t nrnn ;//神经元个数,取决于所拟合的曲线阶数,一般阶数越高,个数多效果会好点
void * Ci ; //中心向量 Ci[nrnn][in]
void * Di ; //基宽 Di [nrnn]
void * Wi ; //输出权重 Wi[nrnn][out]
}
rbfnn_t;
/* Public variables ---------------------------------------------------------*/
/* Public function prototypes 对外可用接口 -----------------------------------*/
void rbfnn_init(rbfnn_t * rbfnn);
void rbfnn_train(rbfnn_t * rbfnn,rbfnntr_t * traincfg , void * sample_in , void * sample_out , uint32_t size);
void rbfnn_calculate(rbfnn_t * rbfnn , double * netin ,double *netout );
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。