• 大小: 10KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-24
  • 语言: C/C++
  • 标签: c++  

资源简介

用c++实现了BP神经网络类,文件中含有测试数据,测试效果良好,关于该BP神经网络类的实现原理,参考本人关于BP神经网络叙述的博客 http://blog.csdn.net/hjkhjk007/article/details/9001304

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “BPNNs.h“

CBPNNs::CBPNNs(void)
{
AloatSizeJuge = false;

  nInputNodes=0;
     nHiddenlayers=0;
     nHiddenNodes=NULL;
  nOutputNodes=0;
     nPatterns=0;

 nIterations=0;
 nErrorLevel=0;
 neta=0;
 nalpha=0;
 nTrainMethod=0;
     nOLTF=0;
     nHLTF=0;



}

CBPNNs::CBPNNs(BPNNS_CreateInfo CreateInfo)
{
    AloatSizeJuge=true;
nInputNodes=CreateInfo.InputNodes;                         //输入层节点数
nHiddenlayers=CreateInfo.Hiddenlayers;                     //隐层数
nHiddenNodes=CreateInfo.HiddenNodes;
nOutputNodes=CreateInfo.OutputNodes;                       //输出层节点数
nPatterns=CreateInfo.Patterns;                             //训练实例数
//  nIterations=TrainInfo.Iterations;                         //训练次数
//  nErrorLevel=TrainInfo.ErrorLeve;                       //误差级别    
//  neta=TrainInfo.eta;
//  nalpha=TrainInfo.alpha;
//  nTrainMethod=TrainInfo.TrainMethod;
//  nOLTF=TrainInfo.OLTF; 
//  nHLTF=TrainInfo.HLTF;
errorTemp=0.0;
JugeError=0;
AlotSize();//开辟空间
InitWeight();//初始化权值
}
CBPNNs::~CBPNNs(void)
{
if(AloatSizeJuge)
 FreeMatrix();
}
/*---------------创建BP神经网络------------------------*/
bool CBPNNs::CreateBPNNS(BPNNS_CreateInfo CreateInfo)
{
if(nInputNodes||nHiddenlayers||nHiddenNodes||nOutputNodes||nPatterns)
{
if(IDNO==AfxMessageBox(L“ 网络已经存在是否重新创建 ?“MB_YESNO 1))
{
/*FreeMatrix();*/
return false;
}
FreeMatrix();

}
AloatSizeJuge=true;
nInputNodes=CreateInfo.InputNodes;                         //输入层节点数
nHiddenlayers=CreateInfo.Hiddenlayers;                     //隐层数
nHiddenNodes=CreateInfo.HiddenNodes;
nOutputNodes=CreateInfo.OutputNodes;                       //输出层节点数
nPatterns=CreateInfo.Patterns;                             //训练实例数
//  nIterations=TrainInfo.Iterations;                         //训练次数
//  nErrorLevel=TrainInfo.ErrorLeve;                       //误差级别    
//  neta=TrainInfo.eta;
//  nalpha=TrainInfo.alpha;
//  nTrainMethod=TrainInfo.TrainMethod;
//  nOLTF=TrainInfo.OLTF; 
//  nHLTF=TrainInfo.HLTF;
errorTemp=0.0;
JugeError=0;
AlotSize();//开辟空间
InitWeight();//初始化权值
return true;
}
/*---------------变量分配空间过程------------------------*/
void CBPNNs::VectorAllocate(VECTOR *vectorint nCols)
{
if((*vector=(VECTOR)calloc(nColssizeof(float)))==NULL)
{
AfxMessageBox(_T(“Sorry!Not enough memory for nodes“));
}
}
void CBPNNs::AllocateCols(PFLOAT matrix[]int nRowsint nCols)
{
int i;
for(i=0;i VectorAllocate(&matrix[i]nCols);
}
void CBPNNs::MatrixAllocate(MATRIX *pmatrixint nRowsint nCols)
{
if((*pmatrix=(MATRIX)calloc(nRowssizeof(PFLOAT)))==NULL)
{
AfxMessageBox(_T(“Sorry!Not enough memory for nodes“));
}
AllocateCols(*pmatrixnRowsnCols);
}
/*---------------结束------------------------*/
/*---------------释放空间函数------------------------*/
void CBPNNs::MatrixFree(MATRIX matrixint nRows)
{
int i;
for(i=0;i free(matrix

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       37468  2012-11-06 19:59  BP神经网络类\BPNNs.cpp
     文件        8657  2012-11-06 19:48  BP神经网络类\BPNNs.h
     目录           0  2012-11-21 16:10  BP神经网络类\训练数据和测试数据\
     文件         442  2012-10-28 11:52  BP神经网络类\训练数据和测试数据\ftest.txt
     文件        1588  2012-10-28 11:52  BP神经网络类\训练数据和测试数据\input.txt
     目录           0  2013-06-02 21:38  BP神经网络类\

评论

共有 条评论