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

📄 bpn3.h

📁 一个实现3层BP人工神经网络的类
💻 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 + -