亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? procedure.cpp

?? 該軟件為BP網(wǎng)絡的仿真軟件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/////////////////////////////////////////////////////////////////////////////
// Procedure.cpp
//		the implementation of the specified arithmetic
// Author : freeia
// E-mail : freeia@163.com
// Date : 3/20/2003
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Matrix.h"
#include "AllDef.h"



/////////////////////////////////////////////////////////////////////////////
//	Levenberg-Marquart		---->	第一次前向計算初始化				   //
/////////////////////////////////////////////////////////////////////////////
__declspec (dllexport) void LMForwardCalculateInit( int nInputLayerNumber,
													int nHideLayerNumber,
													int nOutputLayerNumber,
													CMatrix &matrixDemoDataInput,
													CMatrix &matrixInputLayerValue,
													CMatrix &matrixInputToHideWeightValue,
													CMatrix &matrixHideLayerValveValue,
													CMatrix &matrixHideToOutputWeightValue,
													CMatrix &matrixOutputLayerValveValue
												   )
{

	/************************************************************************
	*					--------->Use Matlab Method <---------              *
	************************************************************************/

		
	/////////////////////////////////////////////////////////////////////////
	// 構(gòu)造輸入層元素的矩陣
	// 構(gòu)造規(guī)則:
	//		1. 樣本數(shù)目做為矩陣的行數(shù);
	//		2. 單個樣本的輸入層的數(shù)目做為矩陣的列數(shù);
	//		3. 矩陣中的元素即為對應的輸入層的值
	//

	CMatrix cMatrixInputLayerValue(matrixDemoDataInput.GetMatrixRowNumber (), nInputLayerNumber);

	// 得到樣本的輸入值
	matrixDemoDataInput.CopySubMatrix (cMatrixInputLayerValue,(unsigned int)0,(unsigned int)0);

	CMatrix cMatrixTInputLayerValue = cMatrixInputLayerValue.Transpose ();

	matrixInputLayerValue.CopyMatrix (cMatrixTInputLayerValue);


	/////////////////////////////////////////////////////////////////////////
	// 構(gòu)造權(quán)值矩陣 -----> 由單個樣本輸入層與隱含層之間的權(quán)值做為元素組成
	// 構(gòu)造規(guī)則:
	//		1. 單個樣本的輸入層的數(shù)目做為矩陣行數(shù);
	//		2. 單個樣本的隱含層的數(shù)目做為矩陣的列數(shù);
	//		3. 對矩陣中的元素進行隨機初始化,值在(-1,1)之間;
	//		4. 所有樣本的輸入層和隱含層的數(shù)目是相等的;
	//		5. 所有樣本使用的是同一個權(quán)值矩陣.
	//

	CMatrix	cMatrixInputToHideWeightValue(nHideLayerNumber, nInputLayerNumber);

	// 隨機初始化矩陣內(nèi)元素的值
	cMatrixInputToHideWeightValue.RandomInitialize ();

	matrixInputToHideWeightValue.CopyMatrix (cMatrixInputToHideWeightValue);


	/////////////////////////////////////////////////////////////////////
	//	構(gòu)造樣本隱含層的閥值矩陣
	//	構(gòu)造規(guī)則:
	//		1. 樣本的數(shù)目做為矩陣行數(shù);
	//		2. 單個樣本的隱含層的數(shù)目做為矩陣的列數(shù);
	//		3. 隨機初始化矩陣中的元素,使值在(-1,1)之間;
	//		4. 矩陣中每行的數(shù)據(jù)都和第一行數(shù)據(jù)相對應的位置相等.
	//

	CMatrix cMatrixHideLayerValveValue(nHideLayerNumber,(unsigned int)1);

	// 隨機初始化矩陣內(nèi)元素的值
	cMatrixHideLayerValveValue.RandomInitialize ();

	matrixHideLayerValveValue.CopyMatrix(cMatrixHideLayerValveValue);


	/////////////////////////////////////////////////////////////////////
	//	構(gòu)造權(quán)值矩陣	----->	由單個樣本的隱含層與輸出層之間權(quán)值做為元素
	//							組成
	//	構(gòu)造規(guī)則:
	//		1. 單個樣本的隱含層的數(shù)目做為矩陣的行數(shù);
	//		2. 單個樣本的輸出層的數(shù)目做為矩陣的列數(shù);
	//		3. 對矩陣中的元素進行隨機初始化,值在(-1,1)之間;
	//		4. 所有樣本的隱含層和輸出層的數(shù)目是相等的;
	//		5. 所有樣本使用的是同一個權(quán)值矩陣.
	//

	CMatrix cMatrixHideToOutputWeightValue(nOutputLayerNumber, nHideLayerNumber);

	// 對矩陣的元素隨機初始化
	cMatrixHideToOutputWeightValue.RandomInitialize ();

	matrixHideToOutputWeightValue.CopyMatrix (cMatrixHideToOutputWeightValue);


	/////////////////////////////////////////////////////////////////////
	//	構(gòu)造樣本的輸出層的閥值矩陣
	//	構(gòu)造規(guī)則:
	//		1. 樣本的數(shù)目做為矩陣的行數(shù);
	//		2. 單個樣本的輸出層的數(shù)目做為矩陣的列數(shù);
	//		3. 隨機初始化矩陣中的元素,使值在(-1,1)之間;
	//		4. 矩陣中每行的數(shù)據(jù)都和第一行數(shù)據(jù)相對應的位置相等.
	//

	CMatrix cMatrixOutputLayerValveValue(nOutputLayerNumber,(unsigned int)1);

	// 隨機初始化矩陣內(nèi)元素的值
	cMatrixOutputLayerValveValue.RandomInitialize ();

	matrixOutputLayerValveValue.CopyMatrix(cMatrixOutputLayerValveValue);


}

/////////////////////////////////////////////////////////////////////////////
//	Levenberg-Marquart		---->		前向計算						   //
/////////////////////////////////////////////////////////////////////////////
__declspec(dllexport) void LMForwardCalculate ( int nInputLayerNumber,
												int nHideLayerNumber,
												int nOutputLayerNumber,
												bool bSimulateDataFlag,
												int nComboFunc,
												CMatrix &matrixDemoDataInput,
												CMatrix &matrixInputLayerValue,
												CMatrix &matrixInputToHideWeightValue,
												CMatrix &matrixHideLayerValveValue,
												CMatrix &matrixHideLayerOutput,
												CMatrix &matrixHideToOutputWeightValue,
												CMatrix &matrixOutputLayerOutput,
												CMatrix &matrixOutputLayerValveValue
											   )
{

	if(bSimulateDataFlag)
	{

		CMatrix cMatrixInputLayerValue(matrixDemoDataInput.GetMatrixRowNumber (), nInputLayerNumber);

		// 得到樣本的輸入值
		matrixDemoDataInput.CopySubMatrix (cMatrixInputLayerValue, (unsigned int)0, (unsigned int)0);

		CMatrix cMatrixTInputLayerValue = cMatrixInputLayerValue.Transpose ();

		matrixInputLayerValue.CopyMatrix (cMatrixTInputLayerValue);


	}

	/////////////////////////////////////////////////////////////////////////
	// 得到所有樣本的隱含層的凈輸入
	// 構(gòu)造規(guī)則:
	//		1. 樣本的數(shù)目做為矩陣行數(shù);
	//		2. 單個樣本的隱含層的數(shù)目做為矩陣的列數(shù);
	//		3. 矩陣元素中的值即為對應的樣本的隱含層的凈輸入:
	//		   由 
	//				cMatrixInputLayerValue * cMatrixInputToHideWeightValue 
	//				+ cMatrixHideLayerValveValue
	//			得到.
	//
		
	CMatrix cMatrixExHideLayerValveValue;
	cMatrixExHideLayerValveValue.nncpyi (matrixHideLayerValveValue, matrixDemoDataInput.GetMatrixRowNumber ());

	CMatrix cMatrixHideLayerPureInput(nHideLayerNumber, matrixDemoDataInput.GetMatrixRowNumber ());

	cMatrixHideLayerPureInput = matrixInputToHideWeightValue * matrixInputLayerValue;

	cMatrixHideLayerPureInput += cMatrixExHideLayerValveValue;


	/////////////////////////////////////////////////////////////////////
	//	算出所有樣本的隱含層的輸出
	//	構(gòu)造規(guī)則:
	//		1. 隱含層的輸出y與隱含層的輸入x的關系可用函數(shù)表示
	//			y = f(x)
	//		2. 矩陣的維數(shù)和隱含層的凈輸入矩陣的維數(shù)相等
	//

	CMatrix cMatrixHideLayerOutput(nHideLayerNumber, matrixDemoDataInput.GetMatrixRowNumber ());

	switch(nComboFunc)
	{
	case 0:
		cMatrixHideLayerOutput = cMatrixHideLayerPureInput.Sigmoid ();
		break;

	case 1:
		cMatrixHideLayerOutput = cMatrixHideLayerPureInput.tanh ();
		break;

	case 2:
		cMatrixHideLayerOutput = cMatrixHideLayerPureInput.Tansig();
		break;

	default:
		return;
	}
	
	matrixHideLayerOutput.CopyMatrix(cMatrixHideLayerOutput);

	/////////////////////////////////////////////////////////////////////
	//	得到所有樣本輸出層的凈輸入
	//	構(gòu)造規(guī)則;
	//		1. 樣本的數(shù)目做為矩陣的行數(shù);
	//		2. 單個樣本的輸出層的數(shù)目做為矩陣的列數(shù);
	//		3. 矩陣中元素的值即為對應樣本的輸出層的凈輸入:
	//			由
	//				cMatrixHideLayerOutput * cMatrixHideToOutputWeightValue
	//				+ cMatrixOutputLayerValveValue
	//			得到
	//

	CMatrix cMatrixExOutputLayerValveValue;
	cMatrixExOutputLayerValveValue.nncpyi (matrixOutputLayerValveValue, matrixDemoDataInput.GetMatrixRowNumber ());

	CMatrix cMatrixOutputLayerPureInput(nOutputLayerNumber, matrixDemoDataInput.GetMatrixRowNumber ());

	cMatrixOutputLayerPureInput = matrixHideToOutputWeightValue * cMatrixHideLayerOutput;
	cMatrixOutputLayerPureInput  += cMatrixExOutputLayerValveValue;


	/////////////////////////////////////////////////////////////////////
	//	算出所有樣本的輸出層的輸出
	//	構(gòu)造規(guī)則:
	//		1. 矩陣的維數(shù)與得到的所有樣本的輸出層的凈輸入組成的矩陣一樣;
	//		2. 輸出層的輸出y和輸出層的輸入可用關系式
	//			y = f(x)
	//		表示
	//

	CMatrix cMatrixOutputLayerOutput(nOutputLayerNumber, matrixDemoDataInput.GetMatrixRowNumber ());

	switch(nComboFunc)
	{
	case 0:
		cMatrixOutputLayerOutput = cMatrixOutputLayerPureInput.Sigmoid ();
		break;

	case 1:
		cMatrixOutputLayerOutput = cMatrixOutputLayerPureInput.tanh ();
		break;

	case 2:
		cMatrixOutputLayerOutput = cMatrixOutputLayerPureInput.Tansig ();
		break;

	default:
		return ;
	}

	matrixOutputLayerOutput.CopyMatrix(cMatrixOutputLayerOutput);

}


/////////////////////////////////////////////////////////////////////////////
//	Levenberg-Marquart		---->		反饋計算						   //
/////////////////////////////////////////////////////////////////////////////
__declspec(dllexport) bool LMDemoDataTrainRepeat (	int nInputLayerNumber,
													int nHideLayerNumber,
													int nOutputLayerNumber,
													bool bSimulateDataFlag,
													int nComboFunc,
													double nSystemErrorOld,
													double nSystemErrorNew,
													double nSystemErrorLevel,
													double nSystemError,
													double nStep,
													UINT nMaxTrainTimes,
													UINT nTrainTimes,
													DWORD ID_SYSTEM_ERROR,
													DWORD ID_TRAIN_TIMES,
													HWND  hWnd,
													CMatrix &matrixDemoDataInput,
													CMatrix &matrixInputLayerValue,
													CMatrix &matrixInputToHideWeightValue,
													CMatrix &matrixHideLayerValveValue,
													CMatrix &matrixHideLayerOutput,
													CMatrix &matrixHideToOutputWeightValue,
													CMatrix &matrixOutputLayerOutput,
													CMatrix &matrixOutputLayerValveValue
												 )
{

	LMForwardCalculate (nInputLayerNumber,
						nHideLayerNumber,
						nOutputLayerNumber,
						bSimulateDataFlag,
						nComboFunc,
						matrixDemoDataInput,
						matrixInputLayerValue,
						matrixInputToHideWeightValue,
						matrixHideLayerValveValue,
						matrixHideLayerOutput,
						matrixHideToOutputWeightValue,
						matrixOutputLayerOutput,
						matrixOutputLayerValveValue
						);
		

	/////////////////////////////////////////////////////////////////////
	//	算出所有樣本的輸出層的delta矩陣
	//	構(gòu)造規(guī)則:
	//		1. 樣本的數(shù)目為矩陣的行數(shù);
	//		2. 樣本輸出層的數(shù)目為矩陣的列數(shù);
	//		3. 矩陣中的元素的值y為:
	//				y = -(前向計算出的輸出層的值 - 樣本的輸出層的值) * f'(net)
	//


	CMatrix cMatrixTDemoOutput(matrixDemoDataInput.GetMatrixRowNumber (), nOutputLayerNumber);
		
	// 得到樣本中輸出層的數(shù)據(jù)
	matrixDemoDataInput.CopySubMatrix (cMatrixTDemoOutput, (unsigned int)nInputLayerNumber, (unsigned int)0);

	CMatrix cMatrixDemoOutput = cMatrixTDemoOutput.Transpose ();

	// 得到樣本中輸出層的誤差
	CMatrix cMatrixOutputLayerError(nOutputLayerNumber, matrixDemoDataInput.GetMatrixRowNumber ());

	cMatrixOutputLayerError = cMatrixDemoOutput - matrixOutputLayerOutput;

		
	nSystemErrorOld = cMatrixOutputLayerError.GetSystemError ();

	for(int nLoopTimes=1; nLoopTimes < nMaxTrainTimes; nLoopTimes++)	
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品久久人人爱 | 五月天激情综合| 在线观看国产一区二区| 一区在线播放视频| 欧美视频日韩视频在线观看| 婷婷综合五月天| 欧美mv日韩mv亚洲| 国产东北露脸精品视频| 国产欧美一二三区| 91一区二区在线观看| 亚洲国产一区二区三区| 欧美一区二区在线免费播放| 久久国产三级精品| 中文字幕国产精品一区二区| 91麻豆国产福利在线观看| 亚洲国产综合人成综合网站| 精品国内片67194| 粉嫩av一区二区三区粉嫩| 亚洲老妇xxxxxx| 337p亚洲精品色噜噜狠狠| 经典三级一区二区| 国产精品免费看片| 欧美一区二区私人影院日本| 激情五月婷婷综合| 亚洲美女视频一区| 日韩欧美不卡一区| 在线视频亚洲一区| 国产精品亚洲午夜一区二区三区| 亚洲婷婷综合色高清在线| 欧美一区二区三区四区五区| 国产v日产∨综合v精品视频| 一卡二卡三卡日韩欧美| www一区二区| 欧美日本在线观看| 97精品久久久久中文字幕| 免费观看一级欧美片| 成人欧美一区二区三区黑人麻豆| 欧美一区二区久久| 99re这里只有精品首页| 久久99久久久久久久久久久| 亚洲精品免费电影| 久久久精品国产99久久精品芒果| 欧日韩精品视频| 国产成人av一区二区三区在线观看| 亚洲午夜久久久久久久久电影院| 久久日一线二线三线suv| 精品视频1区2区3区| www.久久久久久久久| 精品亚洲免费视频| 亚洲一区免费在线观看| 欧美高清一级片在线观看| 日韩视频在线一区二区| 欧美三级在线看| www.日韩在线| 成人av电影在线网| 国产一本一道久久香蕉| 美女精品自拍一二三四| 五月激情六月综合| 亚洲成人tv网| 亚洲一二三四区不卡| 亚洲三级小视频| 欧美高清在线一区二区| 国产丝袜欧美中文另类| 欧美大胆人体bbbb| 欧美一区二区三区小说| 555www色欧美视频| 欧美精品高清视频| 欧美日韩在线播| 欧美亚洲动漫制服丝袜| 色噜噜狠狠色综合中国| 91在线视频18| 91亚洲精品久久久蜜桃网站| 成人免费视频视频| 成人深夜在线观看| 99久久伊人久久99| 91免费视频观看| 99国产精品久久久久久久久久久 | 日韩一区二区三区电影在线观看| 91老师国产黑色丝袜在线| 91首页免费视频| 99久久er热在这里只有精品66| 粉嫩一区二区三区在线看| 成人av高清在线| 色猫猫国产区一区二在线视频| 欧日韩精品视频| 7777精品伊人久久久大香线蕉的| 在线观看91av| 日韩一级二级三级精品视频| 精品欧美一区二区在线观看 | 国产精品美女久久久久av爽李琼| 久久精品一区蜜桃臀影院| 国产亚洲欧美日韩日本| 日本一区二区视频在线观看| 亚洲视频1区2区| 亚洲精品免费看| 日本不卡视频在线| 国产一区二区在线免费观看| 风间由美中文字幕在线看视频国产欧美| 国产99久久久久久免费看农村| 91丝袜高跟美女视频| 欧美性一级生活| 欧美成人一区二区三区片免费 | 热久久久久久久| 狂野欧美性猛交blacked| 国产精品一级在线| 色综合中文综合网| 国产精品久久久久影院色老大 | 日韩一区二区三区精品视频| 久久久青草青青国产亚洲免观| 中文在线一区二区| 亚洲一区二区三区四区不卡| 美国三级日本三级久久99| 国产99一区视频免费| 欧美日韩www| 欧美国产丝袜视频| 午夜精品一区二区三区电影天堂| 九九九久久久精品| 日本久久精品电影| 日韩精品中午字幕| 中文字幕一区二区三区视频| 免费不卡在线观看| 94-欧美-setu| 精品国产乱码久久久久久久| 亚洲视频电影在线| 激情成人午夜视频| 欧美私人免费视频| 国产精品欧美久久久久一区二区 | 亚洲欧美日本韩国| 精品系列免费在线观看| 欧美亚一区二区| 欧美国产乱子伦 | 91麻豆精品久久久久蜜臀| 中文字幕乱码一区二区免费| 日本vs亚洲vs韩国一区三区二区| 成人精品视频.| 日韩免费性生活视频播放| 亚洲综合网站在线观看| 国产 日韩 欧美大片| 欧美一二三区在线| 亚洲一区二区视频在线| 成人免费毛片app| 久久综合一区二区| 婷婷久久综合九色综合绿巨人| 成人久久18免费网站麻豆| 精品少妇一区二区三区视频免付费| 亚洲精品五月天| 波多野结衣中文字幕一区| 国产片一区二区| 久久超碰97中文字幕| 91精品国产综合久久香蕉麻豆| 亚洲免费av观看| www.亚洲人| 国产精品久久久久久久浪潮网站| 国内不卡的二区三区中文字幕 | 久久久国产综合精品女国产盗摄| 午夜天堂影视香蕉久久| 在线观看中文字幕不卡| 亚洲视频1区2区| 99re66热这里只有精品3直播 | 成人午夜视频在线观看| 精品国产乱码久久久久久久久| 热久久国产精品| 日韩欧美高清一区| 麻豆成人久久精品二区三区红| 欧美猛男男办公室激情| 亚洲福中文字幕伊人影院| 日本乱码高清不卡字幕| 亚洲精品高清在线观看| 色综合久久天天| 亚洲激情自拍偷拍| 欧美亚洲动漫制服丝袜| 亚洲一区二区三区爽爽爽爽爽| 色94色欧美sute亚洲线路一久| 亚洲免费高清视频在线| 欧美日韩一区二区三区四区五区| 一卡二卡三卡日韩欧美| 91精品一区二区三区久久久久久| 午夜国产不卡在线观看视频| 欧美二区乱c少妇| 久久国产精品无码网站| 久久毛片高清国产| 成人午夜电影久久影院| 亚洲人成网站色在线观看| 欧美影视一区在线| 免费成人在线影院| 国产亚洲精品bt天堂精选| 成人午夜碰碰视频| 亚洲精品中文在线| 91精品国产欧美日韩| 国产原创一区二区| 日韩伦理av电影| 91精品欧美一区二区三区综合在| 经典三级在线一区| 亚洲女人小视频在线观看| 91精品中文字幕一区二区三区| 久久99久久99小草精品免视看| 国产精品久久福利| 6080国产精品一区二区| 国产成人亚洲综合a∨婷婷| 亚洲精品欧美综合四区|