1 Star 1 Fork 0

GoodMorning/rbfneuralnetwork

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rbfNeuralNetwork.h 2.57 KB
一键复制 编辑 原始数据 按行查看 历史
GoodMorning 提交于 2018-12-29 20:28 . modify some function name
/**
******************************************************************************
* @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
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/somebug/rbfneuralnetwork.git
[email protected]:somebug/rbfneuralnetwork.git
somebug
rbfneuralnetwork
rbfneuralnetwork
master

搜索帮助