bpnet.h
来自「不用任何更改即可运行的神经网络程序 包括矩阵类和神经网络类和主函数」· C头文件 代码 · 共 64 行
H
64 行
#ifndef _michael_BpNet_
#define _michael_BpNet_
#include "matrix.h"
class CBpNet
{
// Implementation
public:
CMatrix scope(CMatrix mData);
long lEpochs;
double dblMse;
double* dblError;
double randab(double a,double b);
void stop();
void learn();
CMatrix simulate(CMatrix mData);
void Create(CMatrix mInputData,CMatrix mTarget,int numSample=10,int iInput=3,int iHidden=10,int iOutput=3);
public:
int iHidden;//隐层神经元个数
int iInput;//输入个数
int iOutput;//输出个数
int numSample;//n组训练样本
int optimalIndex;//最优的组
protected:
CMatrix mInput;//单个样本输入数据
CMatrix mSampleInput;//全体样本输入数据
CMatrix mSampleTarget;//全体目标数据
CMatrix* mHidden;//计算得到的隐层数据
CMatrix* mOutput;//计算输出
CMatrix* mWeighti;//输入-隐层权重
CMatrix* mWeighto;//隐层-输出权重
CMatrix* mChangei;//输入-隐层权重变化
CMatrix* mChangeo;//隐层-输出权重变化
public:
CMatrix mInputNormFactor;//正规化因子,iInputx2
CMatrix mTargetNormFactor;//输出正规化因子,iOutputx2
protected:
CMatrix mThresholdi;//阙值
CMatrix mThresholdo;
CMatrix* mOutputDeltas;//误差
CMatrix* mHiddenDeltas;
protected:
int generation;
bool m_IsStop;
double dblMomentumFactor;
double* dblLearnRate1;
double* dblLearnRate2;
void backward(int iSample,int sample);
void forward(int iSample,int sample);
void normalize();//将输入输出样本数据正规化处理
private:
double* dblErr;
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?