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 + -
显示快捷键?