📄 bpn3.h
字号:
// BPN3.h:三层BP网络类的声明
//---------------------------------------------------------------------------
#ifndef BPN3H
#define BPN3H
//---------------------------------------------------------------------------
#include "Matrix.h"
//定义三层BP网络类
class TBPN3
{
private:
int m_nNodes[3]; //输入层、隐层、输出层节点数
TMatrix m_U[3]; //输入层、隐层、输出层u阵,实际为列向量
TMatrix m_O[3]; //输入层、隐层、输出层o阵,实际为列向量
TMatrix m_Weights[2]; //--输入层--隐层的权矩阵:[隐节点数][输入节点数]
//--及隐层--输出层的权矩阵:[输出节点数][隐节点数]
public:
//构造、析构函数
~TBPN3();
TBPN3();
TBPN3(TMatrix *pU,TMatrix *pO,TMatrix *pWeights);
TBPN3(TBPN3& OneNN);
//初始化函数
void InitByMatrix(TMatrix *pU,TMatrix *pO,TMatrix *pWeigths);
void InitByBPN(TBPN3& OneNN);
//操作函数
int GetNodes(int nLayer) const; //获取某层节点数
TMatrix GetU(int nLayer); //获取某层的u阵
TMatrix GetO(int nLayer); //获取某层的o阵
TMatrix GetWeights(int nPart); //获取某部分权值矩阵
void SetU(int nLayer,TMatrix& NewU); //设置某层的u阵
void SetO(int nLayer,TMatrix& NewO); //设置某层的o阵
void SetWeights(int nPart,TMatrix& NewW); //设置网络某部分的权值矩阵
//功能函数
//--下述函数的目的在于便于训练网络,网络的输入是线性化后的输入
TMatrix GetFstOutputs(TMatrix& OneMatrix); //计算网络的输入层输出
TMatrix GetHiddenOutputs(TMatrix& OneMatrix); //计算网络的隐层输出
TMatrix GetLastOutputs(TMatrix& OneMatrix); //计算网络的最终输出
TMatrix GetOutputs(TMatrix& Input); //计算网络的隐层输出
//--下述函数的目的在于使用训练好的网络,由实际输入计算实际输出
TMatrix Compute(TMatrix ActualIn,TMatrix InLineInfo,TMatrix OutLineInfo);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -