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

📄 neuronet_bp.h

📁 bp算法的VC程序
💻 H
字号:
#pragma once
//#include	"NeuroLayer.h"
/////////////////////////////////////////////////////////
typedef struct NeuroLayer
{

	INT			nNode;		//节点数目
	INT			nInput;		//层的输入
	DOUBLE		*pInput;	//层的输入
    DOUBLE		*pOutput;	//层的输出
	DOUBLE		*pError;	//层的误差
	DOUBLE		**ppWeight;	//权值
	DOUBLE		**ppDWeight;	
} NeuroLayer;

//////////////////////////////////////////////////////////

class CNeuroNet_BP
{
public:
	CNeuroNet_BP();
	CNeuroNet_BP(INT NumLayer, INT* pNumNodeInEachLayer, CString  MyFileName);
	~CNeuroNet_BP(void);
	INT		nInput;					//一个输入样本的数据数目
	DOUBLE		*pInput;			//系统的输入
	DOUBLE		*pOutput;			//系统的输出
	INT		nLayer;					//网络的层数
	NeuroLayer	*pLayer;			//指向各层的指针
	DOUBLE		Eta;				//学习效率
	DOUBLE		Alpha;				//冲量因子
	DOUBLE		Error;				//系统总体误差
	DOUBLE		Gain;				//S形函数的增益
	DWORD		TrainTimes;			//训练次数
	CString		fileName;

private:
	
	

public:
	BOOL ReadNetFromFile(void);		// 从文件中读取神经网络
	BOOL SaveNetToFile(void);		// 把神经网络保存到文件
public:
	// 处理输入数据,产生输出
	BOOL	Propagate( DOUBLE*  pInput);
	// 节点函数
	DOUBLE  func(INT i, INT j);
	void	Train(DOUBLE* pInput, DOUBLE* pTarget);
	// 随机赋权值
	void	RandomWeight(void);
	void	BackPropagate(void);
	// 计算输出误差
	void	ComputeOutputError(DOUBLE*	pTarget);
	// 构建网络,分配变量空间
	void GenerateNet(void);
	// 显示网络信息
};

⌨️ 快捷键说明

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