資源簡介
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源代碼
- 下一篇:我寫的一個簡單的屬性編輯器控件
評論
共有 條評論