📄 neuronet_bp.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 + -