资源简介
NNBP 1.0用法说明
本程序是BP算法的演示程序, 其中的Levenberg-Marquardt算法具有实用价值.
程序主界面如下:
一、网络训练
程序默认状态是样本训练状态,现将样本训练状态下的如何训练网络进行说明:
1. 系统精度:
定义系统目标精度,根据需要定义网络训练误差精度.误差公式是对训练出网络的输出层节点和实际的网络输出结果求平方差的和.
2. 最大训练次数:
默认为10000次,根据需要调整,如果到达最大训练次数网络还未能达到目标精度,程序退出.
3. 步长:
默认为0.01,由于采用变步长算法,一般不需人工设置.
4. 输入层数目:
人工神经网络的输入层神经元的节点数目.
5. 隐含层数目:
人工神经网络的隐含层神经元的节点数目.
6. 输出层数目:
人工神经网络的输出层神经元的节点数目.
7. 训练算法:
强烈建议选取Levenberg-Marquardt算法,该算法经过测试比较稳定.
8. 激活函数:
不同的网络激活函数表现的性能不同,可根据实际情况选择.
9. 样本数据的处理:
由于程序没有实现归一化功能, 因此用来训练的样本数据首
先要归一化后才能进行训练.
其中:
数据输入:
就是选择用来训练的样本的文件,文件格式为每个参与训练网络的样本数据(包括输入和输出)占用一行,数据之间用空格隔开.
存储网络:
就是用来存放最终训练成功的网络权值等信息的文件,在仿真时调用用.
保存结果:
网络训练的最终结果,副产品,可丢弃,用来查看网络训练的精度.
10. 训练
点击该按钮用来训练网络。
二、网络仿真
首先要点击按钮
切换到数据仿真状态.
界面如图:
调入训练好的网络,然后选择用来仿真的数据(只包含输入层神经元的节点数目),点击仿真按钮即可。
调入网络:
选择已经训练好的网络文件,假设net_lm_sigmoid_16.txt文件是已经满足精度和泛化能力较好的网络文件,就调入该文件。
数据输入:
选择用来仿真的数据文件,该文件格式同前面介绍的用来训练网络的文件的格式,但需要去掉用网络来模拟的参数,只提供用来测试的网络输入层数据。
仿真结果:
用来保存对测试数据仿真后得到结果文件,即为所想要的数据。
本程序是BP算法的演示程序, 其中的Levenberg-Marquardt算法具有实用价值.
程序主界面如下:
一、网络训练
程序默认状态是样本训练状态,现将样本训练状态下的如何训练网络进行说明:
1. 系统精度:
定义系统目标精度,根据需要定义网络训练误差精度.误差公式是对训练出网络的输出层节点和实际的网络输出结果求平方差的和.
2. 最大训练次数:
默认为10000次,根据需要调整,如果到达最大训练次数网络还未能达到目标精度,程序退出.
3. 步长:
默认为0.01,由于采用变步长算法,一般不需人工设置.
4. 输入层数目:
人工神经网络的输入层神经元的节点数目.
5. 隐含层数目:
人工神经网络的隐含层神经元的节点数目.
6. 输出层数目:
人工神经网络的输出层神经元的节点数目.
7. 训练算法:
强烈建议选取Levenberg-Marquardt算法,该算法经过测试比较稳定.
8. 激活函数:
不同的网络激活函数表现的性能不同,可根据实际情况选择.
9. 样本数据的处理:
由于程序没有实现归一化功能, 因此用来训练的样本数据首
先要归一化后才能进行训练.
其中:
数据输入:
就是选择用来训练的样本的文件,文件格式为每个参与训练网络的样本数据(包括输入和输出)占用一行,数据之间用空格隔开.
存储网络:
就是用来存放最终训练成功的网络权值等信息的文件,在仿真时调用用.
保存结果:
网络训练的最终结果,副产品,可丢弃,用来查看网络训练的精度.
10. 训练
点击该按钮用来训练网络。
二、网络仿真
首先要点击按钮
切换到数据仿真状态.
界面如图:
调入训练好的网络,然后选择用来仿真的数据(只包含输入层神经元的节点数目),点击仿真按钮即可。
调入网络:
选择已经训练好的网络文件,假设net_lm_sigmoid_16.txt文件是已经满足精度和泛化能力较好的网络文件,就调入该文件。
数据输入:
选择用来仿真的数据文件,该文件格式同前面介绍的用来训练网络的文件的格式,但需要去掉用网络来模拟的参数,只提供用来测试的网络输入层数据。
仿真结果:
用来保存对测试数据仿真后得到结果文件,即为所想要的数据。
代码片段和文件信息
// Arithmetic.cpp : Defines the initialization routines for the DLL.
//
#include “stdafx.h“
#include
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static AFX_EXTENSION_MODULE ArithmeticDLL = { NULL NULL };
extern “C“ int APIENTRY
DllMain(HINSTANCE hInstance DWORD dwReason LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0(“ARITHMETIC.DLL Initializing!\n“);
// Extension DLL one-time initialization
if (!AfxInitExtensionModule(ArithmeticDLL hInstance))
return 0;
// Insert this DLL into the resource chain
// NOTE: If this Extension DLL is being implicitly linked to by
// an MFC Regular DLL (such as an ActiveX Control)
// instead of an MFC application then you will want to
// remove this line from DllMain and put it in a separate
// function exported from this Extension DLL. The Regular DLL
// that uses this Extension DLL should then explicitly call that
// function to initialize this Extension DLL. Otherwise
// the CDynlinkLibrary object will not be attached to the
// Regular DLL‘s resource chain and serious problems will
// result.
new CDynlinkLibrary(ArithmeticDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0(“ARITHMETIC.DLL Terminating!\n“);
// Terminate the library before destructors are called
AfxTermExtensionModule(ArithmeticDLL);
}
return 1; // ok
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 53248 2003-06-16 09:09 Matrixba
文件 65536 2003-06-16 09:10 NNBP.exe
文件 118 2004-09-28 10:01 中国最专业的开发资源搜索引擎.url
文件 1495 2003-06-17 18:41 example\测试数据.txt
文件 408 2003-06-17 18:41 example\测试数据的实际结果.txt
文件 856 2003-06-17 18:43 example\用网络仿真的结果.txt
文件 15340 2003-06-17 18:29 example\用来训练网络的数据.txt
文件 3638 2003-06-17 18:22 example\net_lm_sigmoid_16.txt
文件 280 2003-06-17 18:58 example\说明.txt
文件 18374 2003-01-17 18:19 example\Demo.txt
目录 0 2003-06-19 19:53 example
文件 954 2003-03-20 14:59 SRC\NeuralNetwork.dsw
文件 254976 2003-06-19 10:16 SRC\NeuralNetwork.ncb
文件 67072 2003-06-19 10:16 SRC\NeuralNetwork.opt
文件 53248 2003-06-16 09:09 SRC\Bin\Matrixba
文件 36864 2003-06-16 09:09 SRC\Bin\Arithmetic.dll
文件 65536 2003-06-16 09:10 SRC\Bin\NNBP.exe
文件 70656 2003-06-19 19:45 SRC\Bin\Help.doc
文件 1495 2003-06-17 18:41 SRC\Bin\example\测试数据.txt
文件 408 2003-06-17 18:41 SRC\Bin\example\测试数据的实际结果.txt
文件 856 2003-06-17 18:43 SRC\Bin\example\用网络仿真的结果.txt
文件 15340 2003-06-17 18:29 SRC\Bin\example\用来训练网络的数据.txt
文件 3638 2003-06-17 18:22 SRC\Bin\example\net_lm_sigmoid_16.txt
文件 280 2003-06-17 18:58 SRC\Bin\example\说明.txt
文件 18374 2003-01-17 18:19 SRC\Bin\example\Demo.txt
目录 0 2003-06-19 19:53 SRC\Bin\example
目录 0 2003-06-19 19:53 SRC\Bin
文件 4326 2003-03-12 14:13 SRC\Matrixba
文件 18032 2003-03-21 15:27 SRC\Matrixba
文件 156 2003-03-12 10:20 SRC\Matrixba
............此处省略77个文件信息
- 上一篇:MP4编解C源代码
- 下一篇:我写的一个简单的属性编辑器控件
评论
共有 条评论