⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpnlayer.h

📁 BP神经网络程序
💻 H
字号:
///////////
//bpnlayer.h

#include "neucell.h"
#define for if(0); else for  //使if 和for语句中定义的变量作用域局限在其本身

class CBPNLayer:public CObject
{
	DECLARE_SERIAL(CBPNLayer)
	CNeuCell ***m_ppnBPnet;                //指向 神经细胞类 的双重指针 用以创建 神经元层数组 进而创建神经元数组
	int m_iLayerNum,*m_piLayerCapture;    //m_iLayerNum为网络层数 不包括输入层,m_piLayerCapture每层神经元包含层数
	double *m_pdInput,*m_pdDerivTempA,*m_pdDerivTempB;//m_pdInput输入值,m_pdDerivTempAδ值用来在两层间计算
	double m_dStudyRate,*m_pdResualtExpect;     //m_dStudyRate学习速率,m_dResualtExpect期望输出值
	NEURONTYPE m_ntTranslateFunction;         //用来指定神经元转换函数类型,NEURONTYPE在neucell.h定义
	double m_dMomentum;
public:
	CBPNLayer();                           //缺省构造函数内没有任何内容,只是保留函数。
	CBPNLayer(int LayerNum,int *pLayerCapture,NEURONTYPE TranslateFunctionType
		,double StudyRate,double Momentum);//用户应而且只能使用这个构造函数
	~CBPNLayer();  //析构函数用以释放动态定义的变量,此程序中动态定义很多应注意
	void SetBPNet(int LayerNum,int *pLayerCapture,NEURONTYPE TranslateFunctionType
		,double StudyRate,double Momentum);
	void Input(double *dInput,double *ResualtExpect);//输入 输入数据组指针,和期望值
	void SetStudyRate(double StudyRate);  //学习速率设定
	void SetMomentum(double Momentum);//动量因子设定;
	void SetNeuronWeight(int LayerNum,int NueronSequence,int NodeSequence,double InputData);
	double GetNeuronWeight(int LayerNum,int NueronSequence,int NodeSequence);//得到其中神经元节点的权值
	double GetNeuronValue(int LayerNum,int NueronSequence);				//得到其中神经元输出
	double GetResualt(int OutputNumth=0); //得到神经网络输出
	void Run(); //使神经元网络计算,在输入数据后用户必须使用该函数;
	void Expend();
	void Serialize(CArchive& ar);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -