资源简介
用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神经网络类\
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论