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

📄 bpnet.h

📁 BP人工神经网络的程序
💻 H
字号:
//*******************************************
// ******  annstudy.h ********
//*******************************************
#include <stdio.h>
#include <math.h>
#include <io.h>
#include <stdlib.h>
#include <fstream.h>
#include <string.h>

/////////////////////////////////////////////////////////////////////////////
// CBPNet dialog

class CBPNet {

private:
	 int	 m_InputNumber;  //输入层神经元个数

	 int	 m_HidenNumber;  //中间隐含曾层神经元个数

	 int	 m_OutputNumber; //输出层神经元个数

	 int     m_nSample;      //训练样本个数

	 int	 m_StudyCounts;  //网络学习次数

	 int     m_nTest;        //测试样本个数

	 double  alpha;         //中间层至输出层连接权调整学习率

	 double  beta;          //输入层至中间层连接权调整学习率

	 double  ErrorLimit;    //全局误差限制

	 double *Weight_In_Hd;  //输入层至中间隐含层连接权值

	 double *Weight_Hd_Ot;  //中间隐含层至输出层连接权值

	 double *Delt_Ot;         //输出层单元一般误差

	 double *Delt_Hd;         //隐含层单元一般误差

	 double *Sita;            //隐含层单元阈值

	 double *Gama;            //输出层单元阈值

	 double *StudyModel;     //训练样本数据指针

	 double *TeacherModel;   //教师数据指针

	 double *TestModel;      //测试文件数据指针

	 double *OutputOfHd;     //隐含层单元输出值

	 double *OutputOfOt;     //输出层单元输出值

	 double *TOutputOfHd;    //测试时,隐含层单元输出值

	 double *TOutputOfOt;    //测试时,输出层单元输出值
 
	 char   StudyFile[10];    //训练样本数据文件名称 

	 char   AnnDataFile[10];  //训练后保存网络连接权值文件名称 
	 
	 char   TestDataFile[10]; //测试数据文件名称 

public:
	CBPNet();

	void InitAnnData(); //初始化网络连接权值和各单元阈值

    void LearnInit(int nSample,double a,double  b,double Error, //神经网络学习参数初始化
				    char* ReadStudyFile,char* SaveAnnDataFile);

	 
	 void ReadAnnData();           //网络学习时,从文件中读入初始化的的网络权值等

	 void ReadSample();            //从文件中读入训练样本数据

	 void Forward(int NumSample); //模式前向顺序传播

	 void SampleLearning();       //基于训练样本,神经网络学习

	 void SaveAnnData();          //保存训练后网络的连接权值等

	 void ReadLearnedData();      //从文件中读入已经训练好的网络连接权值等

	 void ReadTestData();         //从文件中读入测试数据    
	 
	 void TestInit(int mTest,char* ReadTestFile);               //测试网络参数初始化

	 void Test();                 //测试训练后的网络性能
	 ~CBPNet();
};

inline double sigmf(double x)	       /* sigmoid 函数  */
{
  double su;
     su=1.0/(1.0+exp(-x));
 return (su);
} 







⌨️ 快捷键说明

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