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

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

?? bp_algorithm.cpp

?? 用VC++實現的BP(反向傳播負反饋)神經網絡算法
?? CPP
字號:
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
#include <math.h>



#define input_Num 6
#define hidden_Num 4
#define output_Num 1
#define high 0.999
#define low 0.001


double f(double x)
{
	double d;
//	d=0.5*(1.0+tanh(x));
	d=1.0/(1.0+exp(-(x)));
	if(d>high)
		d=high;
	if(d<low)
		d=low;
	return d;
}
struct inputNeuro
{
	double input[6];
	double teacher[1];
}indata[64];
double output_IL[input_Num];
double output_HL[hidden_Num];
double output_OL[output_Num];
double input_HL[hidden_Num];
double input_OL[output_Num];
double weight_IH[input_Num][hidden_Num];
double weight_HO[hidden_Num][output_Num];
double var_weight_IH[input_Num][hidden_Num];
double var_weight_HO[hidden_Num][output_Num];

double error;
double errorlimit;
double error_HL[hidden_Num];
double error_OL[output_Num];
double yita;
double alpha;
double beta;
double threshold_HL[hidden_Num];
double threshold_OL[output_Num];

void main() 
{
	int i,j,k,loop;
	ofstream outError( "E:\\Downloads\\BP\\誤差.txt", ios::out );
	void save();//函數聲明

	/*網絡初始化*/
	errorlimit=0.01;
	for(i=0;i<64;i++)
	{
		if(i<32)
			indata[i].input[5]=0;
		else
			indata[i].input[5]=1;
		if(i<16||(i<48&&i>31))
			indata[i].input[4]=0;
		else
			indata[i].input[4]=1;
		if(i<8||(i>15&&i<24)||(i<40&&i>31)||(i<56&&i>47))
			indata[i].input[3]=0;
		else
			indata[i].input[3]=1;
		if(i<4||(i<12&&i>7)||(i<20&&i>15)||(i<28&&i>23)||
			(i<36&&i>31)||(i<44&&i>39)||(i<52&&i>47)||(i<60&&i>55))
			indata[i].input[2]=0;
		else
			indata[i].input[2]=1;
		if(i<2||(i<6&&i>3)||(i<10&&i>7)||(i<14&&i>11)||
			(i<18&&i>15)||(i<22&&i>19)||(i<26&&i>23)||
			(i<30&&i>27)||(i<34&&i>31)||(i<38&&i>35)||(i<42&&i>39)||
			(i<46&&i>43)||(i<50&&i>47)||(i<54&&i>51)||(i<58&&i>55)||
			(i<62&&i>59))
			indata[i].input[1]=0;
		else
			indata[i].input[1]=1;
		if(!(i%2))
			indata[i].input[0]=0;
		else
			indata[i].input[0]=1;

		switch(i)
		{
			case 0:
			case 12:
			case 18:
			case 30:
			case 33:
			case 45:
			case 51:
			case 63:indata[i].teacher[0]=high;break;
			default:indata[i].teacher[0]=low;break;
		}
	}

	for(j=0;j<hidden_Num;j++)
		input_HL[j]=0.0;
	for(j=0;j<output_Num;j++)
		input_OL[j]=0.0;

	for(j=0;j<input_Num;j++)
		for(k=0;k<hidden_Num;k++)
			weight_IH[j][k]=((double(rand()%11-10))/10.0);//0.1
	for(j=0;j<hidden_Num;j++)
		for(k=0;k<output_Num;k++)
			weight_HO[j][k]=((double(rand()%11-10))/10.0);//0.1
	for(j=0;j<input_Num;j++)
		for(k=0;k<hidden_Num;k++)
			var_weight_IH[j][k]=0.0;
	for(j=0;j<hidden_Num;j++)
		for(k=0;k<output_Num;k++)
			var_weight_HO[j][k]=0.0;
	for(j=0;j<hidden_Num;j++)
		threshold_HL[j]=-0.1;//-1.8,-0.1
	for(j=0;j<output_Num;j++)
		threshold_OL[j]=-2;//-0.1,-2
	yita=0.3;//yita一般取值為0.2~0.3//0.36效果不錯
	alpha=0.8;//alpha一般取值為0.7~0.8
	beta=0.00000002;//0.01,0.00000002

	loop=0;//迭代次數
	/*網絡初始化完成*/
	while(loop<1000000)
	{
		error=0.0;

		for(j=0;j<hidden_Num;j++)
			error_HL[j]=0.0;
		for(j=0;j<output_Num;j++)
			error_OL[j]=0.0;
	
		for(i=0;i<64;i++)
		{
			/*輸入層的輸出*/
			for(j=0;j<input_Num;j++)
			{
				output_IL[j]=indata[i].input[j];
				output_IL[j]=f(output_IL[j]);
			}
			
			/*隱層的輸入*/
			for(j=0;j<hidden_Num;j++)
				input_HL[j]=0.0;
			for(k=0;k<hidden_Num;k++)
				for(j=0;j<input_Num;j++)
					input_HL[k]+=(weight_IH[j][k]*output_IL[j]);
			for(k=0;k<hidden_Num;k++)
				input_HL[k]+=threshold_HL[k];
			/*隱層輸出*/
			for(k=0;k<hidden_Num;k++)
			{
				output_HL[k]=f(input_HL[k]);
			}
			
			/*輸出層的輸入*/
			for(j=0;j<output_Num;j++)
				input_OL[j]=0.0;
			for(k=0;k<output_Num;k++)
				for(j=0;j<hidden_Num;j++)
				input_OL[k]+=(weight_HO[j][k]*output_HL[j]);
			for(k=0;k<output_Num;k++)
				input_OL[k]+=threshold_OL[k];
			/*輸出層的輸出*/
			for(k=0;k<output_Num;k++)
			{
				output_OL[k]=f(input_OL[k]);
			}
	
		for(j=0;j<output_Num;j++)
		{
			error_OL[j]=(((output_OL[j]-indata[i].teacher[j])));
			error+=0.5*(fabs(error_OL[j])*fabs(error_OL[j]));
		}
		
		/*隱層與輸出層間的權值變化量*/
		for(j=0;j<hidden_Num;j++)
			for(k=0;k<output_Num;k++)
				var_weight_HO[j][k]=
				(-yita*(error_OL[k]*(output_OL[k]*(1.0-output_OL[k])))*output_HL[j]
				+alpha*var_weight_HO[j][k]);
		/*對隱層與輸出層間的權值以及輸出層的閾值進行修正*/
		for(j=0;j<hidden_Num;j++)
			for(k=0;k<output_Num;k++)
				weight_HO[j][k]+=var_weight_HO[j][k];
		for(k=0;k<output_Num;k++)
			threshold_OL[k]+=(beta*error_OL[k]);
		/*輸入層與隱層間的權值變化量*/
		for(j=0;j<input_Num;j++)
			for(k=0;k<hidden_Num;k++)
				var_weight_IH[j][k]=
				(-yita*(((error_OL[0]*(output_OL[k]*(1.0-output_OL[0])))*weight_HO[k][0])
				*(output_HL[k]*(1.0-output_HL[k])))*output_IL[j]
				+alpha*var_weight_IH[j][k]);
		/*對輸入層與隱層間的權值以及隱層的閾值進行修正*/
		for(j=0;j<input_Num;j++)
			for(k=0;k<hidden_Num;k++)
				weight_IH[j][k]+=var_weight_IH[j][k];
		for(k=0;k<hidden_Num;k++)
			threshold_HL[k]+=(beta*(error_OL[0]*(output_OL[k]*(1.0-output_OL[0]))*weight_HO[k][0]));
		//	threshold_HL[k]+=(beta*error_OL[k]);			
		}
		//將誤差數據倒出到文本文件中
		if(loop==0)
		outError<<"迭代次數    誤差\t迭代次數    誤差\t迭代次數    誤差\t迭代次數    誤差\n";
		outError<<(loop+1)<<"\t    "<<error<<"\t    ";
		if((loop+1)%4==0)
		outError<<"\n";	
		


		printf("%d\t%lf\n",loop+1,error);
		loop++;
		if(error<errorlimit)
				break;
	}
	if(error<errorlimit&&loop<1000000)
	{
		printf("\nThe iteration number of the program is %d!",loop);
		printf("\nThe final error is %lf!\n",error);
		printf("\nSuccessful!\n");
		for(i=0;i<64;i++)
		{
			for(j=0;j<input_Num;j++)
			{
				output_IL[j]=indata[i].input[j];
				output_IL[j]=f(output_IL[j]);
				printf("%1.0f   ",indata[i].input[j]);
			}
			printf("\n");
			
			output_OL[0]=0.0;
			for(j=0;j<hidden_Num;j++)
				input_HL[j]=0.0;
			for(j=0;j<output_Num;j++)
				input_OL[j]=0.0;
			/*隱層的輸入*/
			for(k=0;k<hidden_Num;k++)
				for(j=0;j<input_Num;j++)
					input_HL[k]+=(weight_IH[j][k]*output_IL[j]);
			for(k=0;k<hidden_Num;k++)
				input_HL[k]+=threshold_HL[k];
			/*隱層輸出*/
			for(k=0;k<hidden_Num;k++)
			{
				output_HL[k]=f(input_HL[k]);
			}
			/*輸出層的輸入*/
			for(k=0;k<output_Num;k++)
				for(j=0;j<hidden_Num;j++)
					input_OL[k]+=(weight_HO[j][k]*output_HL[j]);
			for(k=0;k<output_Num;k++)
				input_OL[k]+=threshold_OL[k];
			/*輸出層的輸出*/
			for(k=0;k<output_Num;k++)
			{
				output_OL[k]=f(input_OL[k]);
			}
			//	/*輸出層的誤差*/
			printf("\n%lf\n\n",output_OL[0]);	
		}
		save();
	}
	else
		printf("error!");
}


void save()
{
	int m,n;
	ofstream outQuanFile( "E:\\Downloads\\BP\\權值.txt", ios::out );
	ofstream outYuFile( "E:\\Downloads\\BP\\閾值.txt", ios::out );
	outQuanFile<<"輸入層與隱含層之間的連接權\n";
	for(m=0;m<input_Num;m++)//ofstream out("g:\\bp\\e.txt");
	{
		for(n=0;n<hidden_Num;n++)
		{
			outQuanFile<<weight_IH[m][n]<<"    ";
		}
		outQuanFile<<"\n";
	}
	outQuanFile<<"隱含層與輸出層之間的連接權\n";
	for(m=0;m<hidden_Num;m++)
	{
		for(n=0;n<output_Num;n++)
		{
			outQuanFile<<weight_HO[m][n]<<"    ";
		}
		outQuanFile<<"\n";
	}
	outYuFile<<"\n隱層的閾值為:\n";
	for(n=0;n<hidden_Num;n++)
	{
		outYuFile<<threshold_HL[n]<<"    ";  //隱層閾值寫入文本
	}
	outYuFile<<"\n輸出層的閾值為:\n";
	for(m=0;m<output_Num;m++)
	{
		outYuFile<<threshold_OL[m]<<"    ";  //輸出層閾值寫入文本
	}
//	outQuanFile.close();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一级在线播放| 国产成人啪免费观看软件| 亚洲国产精品久久一线不卡| 最新国产成人在线观看| 欧美国产乱子伦 | 色综合天天综合色综合av| 成人国产精品免费网站| 高清av一区二区| 成人午夜碰碰视频| 成人av网在线| 91网站在线播放| 色婷婷激情久久| 欧美亚洲综合另类| 欧美日韩国产不卡| 91精品国产综合久久久久| 91精品在线麻豆| 青青草91视频| 毛片av中文字幕一区二区| 精品一区二区三区免费观看| 国产在线日韩欧美| 国产在线一区二区综合免费视频| 美女视频黄久久| 国产综合成人久久大片91| 丰满亚洲少妇av| 99国产一区二区三精品乱码| 色综合天天综合| 精品婷婷伊人一区三区三| 在线不卡欧美精品一区二区三区| 日韩一级片在线观看| 26uuu亚洲综合色欧美| 国产免费久久精品| 亚洲日本青草视频在线怡红院| 亚洲激情自拍视频| 同产精品九九九| 麻豆成人久久精品二区三区红| 韩国欧美一区二区| 成人黄色网址在线观看| 色综合天天做天天爱| 欧美日本一区二区在线观看| 日韩欧美区一区二| 国产欧美日韩亚州综合| 1000精品久久久久久久久| 亚洲一区二区三区在线播放| 日本午夜一本久久久综合| 国产中文字幕精品| 97久久超碰精品国产| 日韩电影免费在线看| 久久精品999| 成人一区在线观看| 91福利在线播放| 538在线一区二区精品国产| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美亚洲一区二区在线| 日韩一区二区在线播放| 国产日韩欧美高清在线| 一区二区在线观看免费| 男人的天堂久久精品| 丰满亚洲少妇av| 欧美三级蜜桃2在线观看| 精品免费国产二区三区| 国产精品美女一区二区在线观看| 亚洲综合在线免费观看| 久久se这里有精品| 成a人片国产精品| 欧美久久久久久久久久| 久久精品人人做人人综合| 亚洲免费观看视频| 久久精品国产精品亚洲精品| 成人黄色综合网站| 欧美一区二区视频观看视频| 日本一区二区三区在线不卡| 亚洲国产精品人人做人人爽| 国产毛片精品国产一区二区三区| 色婷婷综合久久久中文一区二区 | 国产欧美精品日韩区二区麻豆天美| 亚洲日本在线观看| 久久成人麻豆午夜电影| 91丨九色丨尤物| 欧美tickling网站挠脚心| 中文字幕佐山爱一区二区免费| 免费成人在线播放| 91网页版在线| 精品国精品国产| 亚洲激情自拍偷拍| 国产高清不卡一区二区| 欧美日韩国产综合视频在线观看| 国产日韩欧美a| 丝袜诱惑亚洲看片| 99久久精品免费精品国产| 日韩亚洲电影在线| 亚洲免费av在线| 国产一区二区视频在线| 欧美少妇一区二区| 国产精品嫩草影院com| 青青草视频一区| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲高清免费观看 | 美日韩一区二区三区| 91在线观看美女| 337p日本欧洲亚洲大胆色噜噜| 亚洲午夜在线观看视频在线| 粉嫩av一区二区三区在线播放| 3atv一区二区三区| 亚洲精品你懂的| 国产成人免费9x9x人网站视频| 欧美精品三级日韩久久| 亚洲日本在线看| 国产不卡视频在线播放| 日韩欧美中文一区| 亚洲午夜久久久久久久久久久| 成人自拍视频在线| 欧美成人福利视频| 性做久久久久久免费观看| 成人av电影在线网| 久久蜜臀精品av| 日本免费在线视频不卡一不卡二| 色哟哟在线观看一区二区三区| 国产视频视频一区| 久久综合九色欧美综合狠狠| 亚洲国产日产av| 91亚洲资源网| 亚洲国产精品成人综合色在线婷婷 | 91啦中文在线观看| 亚洲国产成人私人影院tom| 久久国产精品一区二区| 欧美日韩国产影片| 一区二区三区免费在线观看| 成人99免费视频| 国产婷婷一区二区| 精品一区精品二区高清| 91精选在线观看| 亚洲电影一级黄| 日本乱人伦一区| 中文字幕一区二区三区在线观看 | 日本不卡一区二区三区高清视频| 欧洲精品视频在线观看| 中文字幕一区二区三区不卡 | 亚洲色图欧洲色图婷婷| 成人午夜激情片| 国产日韩欧美一区二区三区乱码 | 日韩成人av影视| 欧美日韩精品一区二区在线播放| 亚洲精品高清在线观看| 91影院在线观看| 亚洲欧美自拍偷拍色图| 亚洲色图第一区| 成人av集中营| 国产精品国产a| 成人国产精品免费网站| 国产精品免费网站在线观看| 国产成人午夜高潮毛片| 久久久久久麻豆| 国产裸体歌舞团一区二区| 精品国产不卡一区二区三区| 老鸭窝一区二区久久精品| 日韩欧美一区二区三区在线| 日本不卡在线视频| 欧美一级爆毛片| 麻豆一区二区在线| 日韩精品一区二区三区四区视频| 免费高清视频精品| 日韩欧美国产综合一区 | 国产成人在线视频网站| 国产视频一区二区在线观看| 国产v日产∨综合v精品视频| 国产日韩欧美高清在线| 成人国产精品免费观看| 中文字幕在线观看一区二区| 99国产精品久| 有坂深雪av一区二区精品| 91成人免费电影| 亚洲大片在线观看| 欧美剧在线免费观看网站| 日本欧美一区二区三区| 欧美成人高清电影在线| 国产精品资源网站| 国产精品水嫩水嫩| 91香蕉国产在线观看软件| 亚洲综合一二三区| 欧美精品乱人伦久久久久久| 日本vs亚洲vs韩国一区三区二区| 日韩美女主播在线视频一区二区三区| 久久99国产精品免费网站| 久久精品在这里| aaa欧美大片| 亚洲激情一二三区| 91精品综合久久久久久| 韩国欧美一区二区| 国产精品欧美一区喷水| 一本色道亚洲精品aⅴ| 亚洲高清不卡在线观看| 欧美电影免费观看高清完整版| 国产一区在线观看视频| 国产精品女主播av| 欧美偷拍一区二区| 免费成人av在线| 国产丝袜欧美中文另类| 色婷婷久久综合| 日韩不卡在线观看日韩不卡视频| 成人综合日日夜夜|