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

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

?? procedure.cpp

?? 專家系統-神經網絡代碼
?? 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 <---------              *
	************************************************************************/

		
	/////////////////////////////////////////////////////////////////////////
	// 構造輸入層元素的矩陣
	// 構造規則:
	//		1. 樣本數目做為矩陣的行數;
	//		2. 單個樣本的輸入層的數目做為矩陣的列數;
	//		3. 矩陣中的元素即為對應的輸入層的值
	//

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

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

	CMatrix cMatrixTInputLayerValue = cMatrixInputLayerValue.Transpose ();

	matrixInputLayerValue.CopyMatrix (cMatrixTInputLayerValue);


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

	CMatrix	cMatrixInputToHideWeightValue(nHideLayerNumber, nInputLayerNumber);

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

	matrixInputToHideWeightValue.CopyMatrix (cMatrixInputToHideWeightValue);


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

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

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

	matrixHideLayerValveValue.CopyMatrix(cMatrixHideLayerValveValue);


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

	CMatrix cMatrixHideToOutputWeightValue(nOutputLayerNumber, nHideLayerNumber);

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

	matrixHideToOutputWeightValue.CopyMatrix (cMatrixHideToOutputWeightValue);


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

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

	// 隨機初始化矩陣內元素的值
	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);


	}

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

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

	cMatrixHideLayerPureInput = matrixInputToHideWeightValue * matrixInputLayerValue;

	cMatrixHideLayerPureInput += cMatrixExHideLayerValveValue;


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

	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);

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

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

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

	cMatrixOutputLayerPureInput = matrixHideToOutputWeightValue * cMatrixHideLayerOutput;
	cMatrixOutputLayerPureInput  += cMatrixExOutputLayerValveValue;


	/////////////////////////////////////////////////////////////////////
	//	算出所有樣本的輸出層的輸出
	//	構造規則:
	//		1. 矩陣的維數與得到的所有樣本的輸出層的凈輸入組成的矩陣一樣;
	//		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矩陣
	//	構造規則:
	//		1. 樣本的數目為矩陣的行數;
	//		2. 樣本輸出層的數目為矩陣的列數;
	//		3. 矩陣中的元素的值y為:
	//				y = -(前向計算出的輸出層的值 - 樣本的輸出層的值) * f'(net)
	//


	CMatrix cMatrixTDemoOutput(matrixDemoDataInput.GetMatrixRowNumber (), nOutputLayerNumber);
		
	// 得到樣本中輸出層的數據
	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一区二区三区免费野_久草精品视频
国产精品一区二区果冻传媒| 午夜激情久久久| 欧美日本乱大交xxxxx| 日韩在线一区二区| 欧美mv日韩mv亚洲| 91玉足脚交白嫩脚丫在线播放| 日韩亚洲欧美综合| 99久久国产综合色|国产精品| 亚洲成av人**亚洲成av**| 99久久久精品| 国产精品久久久久久久久动漫| 日韩欧美激情在线| 午夜视频一区在线观看| 色婷婷久久久久swag精品| 一区二区三区精品视频| 亚洲一区欧美一区| 国产aⅴ综合色| 亚洲激情第一区| 正在播放一区二区| 日韩欧美美女一区二区三区| 亚洲激情网站免费观看| 香港成人在线视频| 91福利国产成人精品照片| 日韩免费性生活视频播放| 一区二区三区四区高清精品免费观看 | 一区二区成人在线观看| 成人妖精视频yjsp地址| 7777精品伊人久久久大香线蕉经典版下载 | 日韩精品一区二区三区中文精品| 国产白丝网站精品污在线入口| 精品国内二区三区| 国产麻豆成人传媒免费观看| 国产一区二区三区四区五区美女 | 色综合久久久久综合| 国产日韩欧美一区二区三区综合| 国产一区欧美二区| 亚洲女同女同女同女同女同69| 欧美图片一区二区三区| 极品少妇xxxx精品少妇| 亚洲男同性视频| 91精品国产综合久久精品麻豆 | 欧美成人aa大片| av在线综合网| 国产福利一区二区三区视频 | 日韩午夜av电影| 久久99精品久久久久久国产越南| 欧美精品一区二区在线播放| 91麻豆国产自产在线观看| 国产不卡在线播放| 国产精品乱码一区二三区小蝌蚪| 欧美日韩中文字幕精品| 国产91在线|亚洲| 欧美无人高清视频在线观看| 欧美在线视频你懂得| 欧美在线观看视频在线| 五月天激情综合网| 日本特黄久久久高潮| 亚洲va欧美va人人爽午夜| 日韩一级二级三级| 中文字幕一区二区三区视频 | 久久国产三级精品| 中文一区二区在线观看| 欧美日韩精品高清| 欧美r级电影在线观看| 色爱区综合激月婷婷| 在线视频欧美区| 一区二区三区av电影| 欧美电视剧免费观看| 成人av资源站| 欧美唯美清纯偷拍| 日韩欧美一二区| 中文一区二区在线观看| 日韩精品一区在线| 亚洲国产电影在线观看| 亚洲综合激情网| 不卡免费追剧大全电视剧网站| 97精品久久久午夜一区二区三区 | 日韩激情一区二区| 9l国产精品久久久久麻豆| 极品美女销魂一区二区三区免费| 日韩美女久久久| 久久精品国产亚洲a| 一本色道**综合亚洲精品蜜桃冫| 亚洲成人av一区| 欧美aaaaa成人免费观看视频| 久久成人免费网| 精品一区中文字幕| www.亚洲国产| 日本一区二区成人| 国产精品88av| 久久亚区不卡日本| 日韩精品一区二区三区中文不卡 | 成人黄色片在线观看| 欧美一区二区三区白人| 一区二区三区毛片| 91麻豆福利精品推荐| 91国在线观看| 亚洲欧美偷拍三级| 色婷婷亚洲综合| 日韩一区二区三区在线观看 | 亚洲成人资源网| 在线观看日韩国产| 久久久久久久综合日本| 六月丁香婷婷色狠狠久久| 成人国产在线观看| 在线观看亚洲一区| 欧美精彩视频一区二区三区| 高清久久久久久| 亚洲日本va在线观看| 亚洲国产你懂的| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 综合电影一区二区三区 | 精品久久国产97色综合| 色中色一区二区| 91在线小视频| 国产大陆精品国产| 懂色av一区二区夜夜嗨| 日韩**一区毛片| 日韩精品亚洲专区| 在线播放国产精品二区一二区四区| 色欧美日韩亚洲| 欧美mv和日韩mv国产网站| 91香蕉视频在线| 午夜久久久影院| 国产美女一区二区| 色综合久久精品| 欧美电影在线免费观看| 欧美在线观看一区| 精品国产网站在线观看| 国产精品毛片久久久久久| 亚洲免费在线观看| 午夜亚洲福利老司机| 国产精品无遮挡| 午夜视频久久久久久| 高清成人免费视频| 欧美亚洲高清一区| 日韩欧美一区二区免费| 亚洲欧洲日韩av| 久草在线在线精品观看| 色香蕉久久蜜桃| 国产91对白在线观看九色| 在线观看av一区| 国产精品久久久久久亚洲毛片| 日韩精品一区第一页| 精品少妇一区二区三区免费观看| 欧美岛国在线观看| 三级亚洲高清视频| 日本精品裸体写真集在线观看| 99久久免费国产| 日韩欧美国产综合| 喷水一区二区三区| 91精品国产综合久久国产大片| 欧美日韩在线观看一区二区 | 人人精品人人爱| 欧美一区二区三区在| 亚洲成人动漫av| 91精品国产色综合久久ai换脸 | 成人精品鲁一区一区二区| 精品国产一区a| 欧美一区二区三区四区在线观看| 美女视频黄频大全不卡视频在线播放| 久久久亚洲国产美女国产盗摄 | 亚洲成av人片在线观看无码| 色呦呦国产精品| 精品久久久久久久久久久久包黑料| 精品一区二区三区在线观看国产| 久久精品亚洲国产奇米99| 在线亚洲欧美专区二区| 亚洲猫色日本管| 欧美日韩成人在线| 欧美在线视频日韩| 91色视频在线| 91色|porny| 国产99一区视频免费| 精品无人码麻豆乱码1区2区| 亚洲一区二区三区四区的| 亚洲欧美日韩国产一区二区三区| 欧美二区三区的天堂| 美女www一区二区| 久久99精品久久只有精品| 免费一级欧美片在线观看| 久久91精品国产91久久小草| 天堂资源在线中文精品| 亚洲bdsm女犯bdsm网站| 亚洲成人av在线电影| 免费成人你懂的| 国产精品资源在线观看| 成人一二三区视频| 亚洲国产精品视频| 韩国精品一区二区| 成人动漫精品一区二区| 色综合天天天天做夜夜夜夜做| 成人午夜大片免费观看| 国产伦精一区二区三区| 免费观看久久久4p| 91一区二区三区在线观看| 欧美三级电影网站| www国产精品av| 久久久久综合网| 成人小视频在线观看|