资源简介
用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神经网络类\
相关资源
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- c++ 虚拟摄像头
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- c++ 简易贪吃蛇源码
- 高精度加法(c++代码)
- C++调用百度地图案例
- 北京化工大学计算方法(C/C++)讲义
- 基于VC++的SolidWorks二次开发SolidWorks
- c++ 模拟鼠标按键
- OFD编辑器
- Beginning C++17 From Novice to Professional
- C++ STL实现
- opencv手部轮廓识别以及轨迹识别
- 百度C++编码规范
- C++ sql2008 WebServer通讯.docx
- c++ 定时关机程序源码
- 基于VSCode和CMake实现C++开发
- c++语法查询工具
- c++ 账务系统源码
- GBT 28169-2011 嵌入式软件 C语言编码规范
- c++ 猜拳小游戏
- XUnZip Zip解压缩.rar
评论
共有 条评论