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

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

?? nntrain.c

?? 超前校正環節,低界控制系統的超前控制算法,簡單實用,MATLAB實現.
?? C
字號:
/*
*-----------------------------------------------------------------------------
*	file:	nntrain.c
*	desc:	train a fully connected neural net by backpropagation
*	by:	patrick ko
*	date:	2 aug 91
*	revi:	v1.2b - 15 jan 92, adaptive coefficients
*		v1.3u - 18 jan 92, revised data structures
*		v1.31u - 20 jan 92, periodic dump, weights retrieval
*-----------------------------------------------------------------------------
*/
#include <stdio.h>
#include <math.h>
#include <values.h>
#include <time.h>

#include "nntype.h"
#include "nnmath.h"
#include "nntrain.h"
#include "nndump.h"

#define	global
#define	LAMBDA0	0.1

static REAL	ETA = ETA_DEFAULT;
static REAL	MOMENTUM = ALPHA_DEFAULT;
static REAL	LAMBDA = LAMBDA_DEFAULT;
static INTEGER	REPINTERVAL = 0;
global REAL	TOLER = TOLER_DEFAULT;

/*
*=============================================================================
*	funct:	nnbp_train
*	dscpt:	train a neural net using backpropagation
*	given:	net = the neural net
*		inpvect = 1 input vector ( 1 train pattern )
*		tarvect = 1 target vector ( 1 target pattern )
*		np = number of patterns
*		err = error
*		eta, momentum
*		report = dump info interval (no.of train cycles), 0=not dump
*		tdump = no of seconds for periodic dump, 0=not dump
*		dfilename = period dump file name
*	retrn:	measure of error
*=============================================================================
*/
REAL nnbp_train( net, inpvect, tarvect, np, err, eta, momentum, report, tdump, dfilename )
NET	*net;
VECTOR	**inpvect;
VECTOR	**tarvect;
REAL	err, eta, momentum;
INTEGER	np, report;
long int tdump;
char	*dfilename;
{
	REAL	Error;
	INTEGER	cnt;
	time_t	lasttime, thistime;
	FILE	*fdump;


	cnt = 0;
	REPINTERVAL = report;
	ETA = eta;
	MOMENTUM = momentum;
	Error = MAXFLOAT;
	if (tdump)
		time(&lasttime);

	while (Error > err)
		{
		cnt++;
		Error = nnbp_train1( net, inpvect, tarvect, np, Error );

		if (report)
			nnbp_report(cnt, Error);
		if (tdump)
			{
			if (((thistime = time(&thistime)) - lasttime) >= tdump)
				{
				fdump = fopen( dfilename, "w" );
				nn_dump( fdump, net );
				fclose(fdump);
				lasttime = thistime;
				}
			}
		}
	return (Error);
}

/*
*=============================================================================
*	funct:	nnbp_report
*	dscpt:	print report lines to terminal
*	given:	cnt = number of train cycles
*		error = overall energy
*	retrn:	nothing
*=============================================================================
*/
void nnbp_report( cnt, error )
INTEGER	cnt;
REAL	error;
{
	if (!(cnt%REPINTERVAL))
		{
		printf("nntrain: cycle %d, mean square error per unit =%f\n", cnt, error );
		}
}

/*
*=============================================================================
*	funct:	nnbp_train1
*	dscpt:	train a neural net 1 cycle using backpropagation
*	given:	net = the neural net
*		inpvect = 1 set of input vectors
*		tarvect = 1 set of target vectors
*		np = number of patterns
*		LastError = energy at last cycle
*	retrn:	measure of error after this train cycle
*=============================================================================
*/
REAL nnbp_train1( net, inpvect, tarvect, np, LastError )
NET	*net;
VECTOR	**inpvect;
VECTOR 	**tarvect;
INTEGER	np;
REAL	LastError;
{
	REAL	Error;
	INTEGER	i;
	INTEGER	fire=0;

	Error = 0.0;
	nnbp_init( net );
	for (i=0; i<np; i++)
		{
		nnbp_forward( net, *(inpvect + i));
		Error += nnbp_backward( net, *(inpvect + i), *(tarvect + i));
		}
	Error = Error / np / DimNetOut(net);
	/*
	* coefficients adaptation and dWeight calculations
	*/
	if (Error <= LastError + TOLER )
		{

		/* weights will be updated, go ahead */

		fire = 1;
		nnbp_coeffadapt( net );
		nnbp_dweightcalc( net, np, fire );
		return (Error);
		}
	else
		{

		/* weights will not be updated, backtrack */

		fire = 0;
		ETA *= BACKTRACK_STEP;		/* half the ETA */
		ETA = ground(ETA,ETA_FLOOR);
		MOMENTUM = ETA * LAMBDA;
		nnbp_dweightcalc( net, np, fire );
		return (LastError);
		}
}

/*
*=============================================================================
*	funct:	nnbp_forward (pass)
*	dscpt:	forward pass calculation
*	given:	net = the neural net
*		inpvect = 1 input vector ( 1 train pattern )
*	retrn:	nothing
*	cmmnt:	net's output Out(J) calculated at every unit
*=============================================================================
*/
void nnbp_forward( net, inpvect )
NET	*net;
VECTOR	*inpvect;
{
	LAYER	*I, *input;
	UNIT	*J;
	INTEGER	i, j, k;
	REAL	sum, out;

	/* phase 1 - forward compute output value Out's */

	input = NULL;

	/* For each layer I in the network */

	for (i=0; i<DimNet(net); i++)
		{
		I = Layer(net,i);

		/* For each unit J in the layer */

		for (j=0; j<DimLayer(I); j++)
			{
			J = Unit(I,j);
			Net(J) = Bias(J) + dBias1(J); /* add bias */
			for (k=0; k<DimvWeight(J); k++)
				{
				if (i==0)
					out = Vi(inpvect,k);
				else
					out = Out(Unit(input,k));

				Net(J) += (Weight(J,k) + dWeight1(J,k)) * out;
				}
			Out(J) = sigmoid(Net(J));
			}
		input = I;
		}
}


void nnbp_init( net )
NET	*net;
{
	LAYER	*I;
	UNIT	*J;
	INTEGER	i, j, k;

	i = DimNet(net);

	while (i--)
		{
		I = Layer(net,i);
		for (j=0; j<DimLayer(I); j++)
			{
			J = Unit(I,j);
			nDlt(J) = 0.0;
			for (k=0; k<DimvWeight(J); k++)
				{
				DO(J,k) = 0.0;
				}
			}
		}
}

/*
*=============================================================================
*	funct:	nnbp_backward
*	dscpt:	backward pass calculation
*	given:	net = the neural net
*		inpvect = 1 input vector ( 1 train pattern )
*		tarvect = 1 target vector
*	retrn:	Ep * 2
*	cmmnt:	net's weight and bias adjusted at every layer
*=============================================================================
*/
REAL nnbp_backward( net, inpvect, tarvect )
NET	*net;
VECTOR	*inpvect;
VECTOR	*tarvect;
{
	LAYER	*I, *F, *B;
	UNIT	*J, *JF;
	INTEGER	i, j, k;
	REAL	sum, out;
	REAL	Ep, diff;

	Ep = 0.0;

	/*
	*	phase 2 - target comparison and back propagation
	*/
	i = DimNet(net) - 1;
	F = I = Layer(net,i);
	B = Layer(net,i - 1);

	/*
	*	Delta rule 1 - OUTPUT LAYER
	*	dpj = (tpj - opj) * f'(netpj)
	*/
	for (j=0; j<DimLayer(I); j++)
		{
		J = Unit(I,j);
		diff = Vi(tarvect,j) - Out(J);
		Dlt(J) = diff * Out(J) * (1.0 - Out(J));

		nDlt(J) += Dlt(J);	/* accumulate Dpj's */

		for (k=0; k<DimvWeight(J); k++)
			{
			if (i==0)
				out = Vi(inpvect,k);
			else
				out = Out(Unit(B,k));
			DO(J,k) += Dlt(J) * out;
			}

		Ep += diff * diff;
		}

	--i;
	while (i >= 0)
		{
		I = Layer(net,i);		/* current layer */
		B = Layer(net,i - 1);
		/*
		*	delta rule 2 - HIDDEN LAYER:
		*	dpj = f'(netpj) * SUMMATEk( Dpk * Wkj )
		*/
		for (j=0; j<DimLayer(I); j++)
			{
			J = Unit(I,j);
			sum = 0.0;
			for (k=0; k<DimLayer(F); k++)
				{
				JF = Unit(F,k);
				sum += Dlt(JF) * (Weight(JF,j)+dWeight1(JF,j));
				}
			Dlt(J) = Out(J) * (1.0 - Out(J)) * sum;
			nDlt(J) += Dlt(J);

			for (k=0; k<DimvWeight(J); k++)
				{
				if (i==0)
					out = Vi(inpvect,k);
				else
					out = Out(Unit(B,k));
				DO(J,k) += Dlt(J) * out;
				}
			}
		F = I;
		i--;
		}

	return (Ep);
}

void nnbp_coeffadapt( net )
NET	*net;
{
	LAYER	*I, *B;
	UNIT	*J;
	INTEGER	n, i, j, k;
	REAL	EW, ME, MW, costh;

	EW = ME = MW = 0.0;
	i = DimNet(net);

	while (i--)
		{
		I = Layer(net,i);
		for (j=0; j<DimLayer(I); j++)
			{
			J = Unit(I,j);
			for (k=0; k<DimvWeight(J); k++)
				{
				ME += DO(J,k) * DO(J,k);
				MW += dWeight1(J,k) * dWeight1(J,k);
				EW += DO(J,k) * dWeight1(J,k);
				}
			}
		}

	ME = sqrt(ME);		/* modulus of cost funct vector E */
	MW = sqrt(MW);		/* modulus of delta weight vector dWn-1*/

	ME = ground(ME,ME_FLOOR);		/* constraints */
	MW = ground(MW,MW_FLOOR);		/* constraints */

	costh = EW / (ME * MW);

	/* coefficients adaptation !!! */

	ETA = ETA * (1.0 + 0.5 * costh);
	ETA = ground(ETA,ETA_FLOOR);
	LAMBDA = LAMBDA0 * ME / MW;
	MOMENTUM = ETA * LAMBDA;
}

void nnbp_dweightcalc( net, np, fire )
NET	*net;
INTEGER	np;
INTEGER	fire;
{
	LAYER	*I;
	UNIT	*J;
	INTEGER	n, i, j, k;

	i = DimNet(net);

	/* calculate dWeights for every unit */

	while (i--)
		{
		I = Layer(net,i);
		for (j=0; j<DimLayer(I); j++)
			{
			J = Unit(I,j);
			nDlt(J) /= np;
			for (k=0; k<DimvWeight(J); k++)
				{
				DO(J,k) /= np;
				if (fire)
					{
					/* commit weight change */
					Weight(J,k) += dWeight1(J,k);

					/* dW n-2 = dW n-1 */
					dWeight2(J,k) = dWeight1(J,k);
					}
				dWeight1(J,k) = ETA * DO(J,k) + MOMENTUM * dWeight2(J,k);
				}
			if (fire)
				{
				Bias(J) += dBias1(J);
				dBias2(J) = dBias1(J);
				}
			dBias1(J) = ETA * nDlt(J) + MOMENTUM * dBias2(J);
			}
		}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久在线观看免费| 有坂深雪av一区二区精品| 成人av资源在线观看| 亚洲一区二区欧美| 久久精品亚洲一区二区三区浴池| 色婷婷综合久久久中文一区二区 | 中文字幕欧美日韩一区| 欧美色欧美亚洲另类二区| 国产九色精品成人porny | 久久电影网站中文字幕 | 麻豆成人免费电影| 亚洲男人的天堂av| 国产欧美视频在线观看| 欧美一区二区免费视频| 在线免费不卡视频| 成人av综合在线| 国产裸体歌舞团一区二区| 日韩经典中文字幕一区| 亚洲免费三区一区二区| 国产精品日产欧美久久久久| 精品久久人人做人人爱| 欧美精品在线视频| 在线观看av一区二区| 99精品国产视频| 丁香一区二区三区| 国产99久久久国产精品潘金网站| 久久精品国产77777蜜臀| 男女视频一区二区| 日韩福利视频导航| 亚洲国产精品欧美一二99| 亚洲人成7777| 亚洲三级在线播放| 国产精品久久久久桃色tv| 亚洲国产精品黑人久久久| 久久尤物电影视频在线观看| 日韩欧美久久久| 91精品国产高清一区二区三区| 欧洲av在线精品| 在线观看日产精品| 在线观看视频一区| 欧美日韩国产综合一区二区三区 | 亚洲小说春色综合另类电影| 亚洲色欲色欲www| 亚洲欧美电影一区二区| 亚洲免费在线观看视频| 亚洲精品免费在线播放| 亚洲制服丝袜一区| 爽好多水快深点欧美视频| 五月天欧美精品| 日本不卡不码高清免费观看| 青青草国产精品亚洲专区无| 久草这里只有精品视频| 国产美女精品一区二区三区| 风间由美一区二区三区在线观看 | 91麻豆精品国产91| 日韩欧美国产系列| 久久久久久久久一| 国产精品电影一区二区三区| 亚洲日本va午夜在线影院| 亚洲精选在线视频| 视频一区二区三区中文字幕| 美女网站一区二区| 欧美一级免费观看| 欧美草草影院在线视频| 久久久777精品电影网影网 | 欧美一二区视频| 久久九九全国免费| 亚洲日本电影在线| 奇米影视一区二区三区| 国产成人在线看| 一本大道久久a久久精二百 | 在线精品国精品国产尤物884a| 精品视频资源站| 日韩女优毛片在线| 国产精品每日更新在线播放网址 | 久久se精品一区二区| 国产成人亚洲综合a∨婷婷| 色综合一个色综合| 日韩午夜激情视频| 国产精品第五页| 日本亚洲三级在线| 大胆亚洲人体视频| 欧美另类z0zxhd电影| 久久九九全国免费| 天天操天天干天天综合网| 国产精品一区二区在线播放| 日本丶国产丶欧美色综合| 欧美成人一区二区三区片免费 | 欧美性高清videossexo| 日韩精品一区二区在线观看| 国产精品国产精品国产专区不片| 天天色天天操综合| 99久久国产综合色|国产精品| 91精品国产综合久久久久久漫画 | 香港成人在线视频| 丁香啪啪综合成人亚洲小说| 欧美日韩一区在线观看| 欧美国产亚洲另类动漫| 日本欧美大码aⅴ在线播放| 不卡的电影网站| 日韩精品一区二区三区在线播放| 亚洲激情一二三区| 成人a区在线观看| 日韩免费一区二区| 亚洲国产精品一区二区久久恐怖片| 国产高清在线观看免费不卡| 在线不卡中文字幕| 一区二区三区高清在线| 丁香亚洲综合激情啪啪综合| 欧美成va人片在线观看| 午夜精品在线视频一区| 91黄色免费看| 欧美国产乱子伦| 国产在线不卡视频| 欧美一二三四区在线| 亚洲国产精品一区二区尤物区| av资源站一区| 国产精品伦一区| 激情深爱一区二区| 日韩免费高清电影| 日韩精品色哟哟| 在线欧美一区二区| 亚洲精品福利视频网站| 成人久久18免费网站麻豆| 久久一夜天堂av一区二区三区| 免费视频最近日韩| 日韩一卡二卡三卡四卡| 免费一级片91| 日韩欧美一二三| 麻豆国产欧美一区二区三区| 欧美精品免费视频| 视频在线在亚洲| 91.成人天堂一区| 午夜精品免费在线| 在线播放中文一区| 日韩成人一级片| 欧美一区二区不卡视频| 免费在线观看视频一区| 欧美电影免费观看高清完整版在| 日本成人超碰在线观看| 日韩女优制服丝袜电影| 国产做a爰片久久毛片| 久久精品综合网| 国产·精品毛片| 中文字幕av一区二区三区高| 岛国av在线一区| 亚洲情趣在线观看| 欧美日韩一区二区三区在线看| 亚洲一区视频在线观看视频| 欧美三级资源在线| 日韩专区一卡二卡| 欧美va亚洲va在线观看蝴蝶网| 黄页网站大全一区二区| 欧美国产禁国产网站cc| 91小视频在线观看| 无吗不卡中文字幕| 精品国产露脸精彩对白| 大胆亚洲人体视频| 亚洲综合一区二区三区| 欧美一级在线视频| 国产高清亚洲一区| 亚洲激情在线激情| 日韩美女在线视频| av在线不卡网| 亚洲sss视频在线视频| 欧美大尺度电影在线| 国产91在线观看丝袜| 亚洲精品自拍动漫在线| 91精品国产色综合久久| 国产夫妻精品视频| 亚洲国产精品久久久久婷婷884| 欧美一区二区美女| 成人av在线影院| 天堂av在线一区| 中文字幕乱码一区二区免费| 欧美丝袜丝交足nylons| 国产麻豆午夜三级精品| 一区二区在线观看视频| 26uuu欧美| 欧美在线观看视频在线| 国产久卡久卡久卡久卡视频精品| 一区二区三区中文免费| 日韩美女视频在线| 91女厕偷拍女厕偷拍高清| 九九久久精品视频| 一区二区三区在线视频免费观看| 精品国产免费一区二区三区四区| 91丨九色丨蝌蚪丨老版| 美女网站一区二区| 亚洲综合在线第一页| 国产精品色哟哟网站| 91精品久久久久久久91蜜桃 | 一本一道综合狠狠老| 青青草国产精品亚洲专区无| 中文字幕一区二区三区在线观看| 欧美一区二区女人| 欧美亚洲一区三区| a4yy欧美一区二区三区| 九九久久精品视频| 五月婷婷综合激情|