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