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

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

?? mybp.cpp

?? 基本bp神經網絡算法和改進型bp神經網絡算法都是我改寫完成的算法
?? CPP
字號:
#include "iostream.h"
#include "iomanip.h"
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
#include "time.h"
#include "fstream.h"
#define N 2 //學習樣本個數
#define IN 3 //輸入層神經元數目
#define HN 3 //隱層神經元數目
#define ON 2 //輸出層神經元數目
#define Z 200000 //舊權值保存-》每次study的權值都保存下來
double P[IN]; //單個樣本輸入數據
double T[ON]; //單個樣本教師數據
double W[HN][IN]; //輸入層至隱層權值
double V[ON][HN]; //隱層至輸出層權值
double X[HN]; //隱層的輸入
double Y[ON]; //輸出層的輸入
double H[HN]; //隱層的輸出
double O[ON]; //輸出層的輸出
double YU_HN[HN]; //隱層的閾值
double YU_ON[ON]; //輸出層的閾值
double err_m[N]; //第m個樣本的總誤差
double a; //輸出層至隱層的學習效率
double b; //隱層至輸入層學習效率
double alpha;  //動量因子,改進型bp算法使用

//定義一個放學習樣本的結構
struct {
double input[IN]; //輸入在上面定義是一個	
double teach[ON]; //輸出在上面定義也是一個
}Study_Data[N];//學習樣本

//改進型bp算法用來保存每次計算的權值
struct {
double old_W[HN][IN];  //保存HN-IN舊權!
double old_V[ON][HN];  //保存ON-HN舊權!
}Old_WV[Z];
 

saveWV(int m)
{
	for(int i=0;i<HN;i++)
	{
		for(int j=0;j<IN;j++)
		{
			Old_WV[m].old_W[i][j] = W[i][j];
		}
	}

	for(int ii=0;ii<ON;ii++)
	{
		for(int jj=0;jj<HN;jj++)
		{
			Old_WV[m].old_V[ii][jj] = V[ii][jj];
		}
	}
	return 1;
}
///////////////////////////
//初始化權、閾值子程序/////
///////////////////////////
initial()
{
//隱層權、閾值初始化//
	srand( (unsigned)time( NULL ) );

	for(int i=0;i<HN;i++)
	{
		for(int j=0;j<IN;j++)
			W[i][j]= (double)((rand()/32767.0)*2-1); //初始化輸入層到隱層的權值,隨機模擬0 和 1 -1	
	}
	for(int ii=0;ii<ON;ii++)
	{
		for(int jj=0;jj<HN;jj++)
			V[ii][jj]= (double)((rand()/32767.0)*2-1); //初始化隱層到輸出層的權值,隨機模擬0 和 1 -1
	}
	for(int k=0;k<HN;k++)
	{
		YU_HN[k] = (double)((rand()/32767.0)*2-1);  //隱層閾值初始化 ,-0.01 ~ 0.01 之間
	}
	for(int kk=0;kk<ON;kk++)
	{
		YU_ON[kk] = (double)((rand()/32767.0)*2-1); //輸出層閾值初始化 ,-0.01 ~ 0.01 之間
	}
  return 1;
}//子程序initial()結束


////////////////////////////////
////第m個學習樣本輸入子程序///
///////////////////////////////
input_P(int m)
{
for (int i=0;i<IN;i++)
 P[i]=Study_Data[m].input[i];
//獲得第m個樣本的數據
return 1;
}//子程序input_P(m)結束

/////////////////////////////
////第m個樣本教師信號子程序//
/////////////////////////////
input_T(int m)
{
for (int k=0;k<m;k++)
 T[k]=Study_Data[m].teach[k];
return 1;
}//子程序input_T(m)結束


/////////////////////////////////
//隱層各單元輸入、輸出值子程序///
/////////////////////////////////
H_I_O(){
double sigma;
int i,j;
for (j=0;j<HN;j++){
sigma=0.0;
	for (i=0;i<IN;i++)
		sigma+=W[j][i]*P[i];//求隱層內積
		
X[j]=sigma - YU_HN[i];//求隱層凈輸入,為什么減隱層的閥值
H[j]=1.0/(1.0+exp(-X[j]));//求隱層輸出 siglon算法
}
return 1;
}//子程序H_I_O()結束


///////////////////////////////////
//輸出層各單元輸入、輸出值子程序///
///////////////////////////////////
O_I_O()
{
double sigma;
for (int k=0;k<ON;k++){
 sigma=0.0;
 for (int j=0;j<HN;j++){
 sigma+=V[k][j]*H[k];//求輸出層內積
}
Y[k]=sigma-YU_ON[k]; //求輸出層凈輸入
O[k]=1.0/(1.0+exp(-Y[k]));//求輸出層輸出
}
return 1;
}//子程序O_I_O()結束


////////////////////////////////////
//輸出層至隱層的一般化誤差子程序////
////////////////////////////////////
double d_err[ON];
Err_O_H(int m)
{
double abs_err[ON];//每個樣本的絕對誤差都是從0開始的
double sqr_err=0;//每個樣本的平方誤差計算都是從0開始的
for (int k=0;k<ON;k++){
  abs_err[k]=T[k]-O[k];
//求第m個樣本下的第k個神經元的絕對誤差
sqr_err+=(abs_err[k])*(abs_err[k]);//求第m個樣本下輸出層的平方誤差
d_err[k]=abs_err[k]*O[k]*(1.0-O[k]);//d_err[k]輸出層各神經元的一般化誤差
}
err_m[m]=sqr_err/2;//第m個樣本下輸出層的平方誤差/2=第m個樣本的均方誤差
return 1;
}//子程序Err_O_H(m)結束


////////////////////////////////////
//隱層至輸入層的一般化誤差子程序////
////////////////////////////////////
double e_err[HN];
Err_H_I(){
double sigma;
for (int j=0;j<HN;j++) {
  sigma=0.0;
  for (int k=0;k<ON;k++) {
      sigma=d_err[k]*V[k][j];
}
e_err[j]=sigma*H[j]*(1-H[j]);//隱層各神經元的一般化誤差
}
return 1;
}//子程序Err_H_I()結束


////////////////////////////////////////////////////////
//輸出層至隱層的權值調整、輸出層閾值調整計算子程序//////
////////////////////////////////////////////////////////
Delta_O_H(int m,int n)
{
if(n<=1)
{
	for (int k=0;k<ON;k++)
	{
		for (int j=0;j<HN;j++)
		{
			V[k][j]=V[k][j]+a*d_err[k]*H[j];//輸出層至隱層的權值調整
		}
	YU_ON[k]+=a*d_err[k];//輸出層至隱層的閾值調整
	}
}
else if(n>1)
{
	for (int k=0;k<ON;k++)
	{
		for (int j=0;j<HN;j++)
		{
			V[k][j]=V[k][j]+a*d_err[k]*H[j]+alpha*(V[k][j]-Old_WV[(n-1)].old_V[k][j]);//輸出層至隱層的權值調整
		}
	YU_ON[k]+=a*d_err[k];//輸出層至隱層的閾值調整
	}
}
return 1;
}//子程序Delta_O_H()結束


/////////////////////////////////////////////////////
//隱層至輸入層的權值調整、隱層閾值調整計算子程序/////
/////////////////////////////////////////////////////
Delta_H_I(int m,int n)
{

if(n<=1)
{
	for (int j=0;j<HN;j++)
	{
		for (int i=0;i<IN;i++) 
		{
			W[j][i]=W[j][i]+b*e_err[j]*P[i];//隱層至輸入層的權值調整
		}
	YU_HN[j]+=b*e_err[j];
	}
}
else if(n>1)
{
	for (int j=0;j<HN;j++)
	{
		for (int i=0;i<IN;i++) 
		{
			W[j][i]=W[j][i]+b*e_err[j]*P[i]+alpha*(W[j][i]-Old_WV[(n-1)].old_W[j][i]);//隱層至輸入層的權值調整
		}
	YU_HN[j]+=b*e_err[j];
	}
}
return 1;
}//子程序Delta_H_I()結束



/////////////////////////////////
//N個樣本的全局誤差計算子程序////
/////////////////////////////////
double Err_Sum()
{
double total_err=0;
for (int m=0;m<N;m++) {
  total_err+=err_m[m];//每個樣本的均方誤差加起來就成了全局誤差
}
return total_err;
}//子程序Err_sum()結束



GetTrainingData()
{
	ifstream GetTrainingData ( "訓練樣本.txt", ios::in );

	for(int m=0;m<N;m++)
	{
		for(int i=0;i<IN;i++)
		{
			GetTrainingData>>Study_Data[m].input[i];  //取得輸入數據
		}
		for(int j=0;j<ON;j++)
		{
			GetTrainingData>>Study_Data[m].teach[j];  //取得輸出數據
		}
	}

	GetTrainingData.close();
	return 1;
}


void savequan()
{
	ofstream outQuanFile( "權值.txt", ios::out );
	ofstream outYuFile( "閾值.txt", ios::out );
	outQuanFile<<"A\n";
	for(int i=0;i<HN;i++)
	{
		for(int j=0;j<IN;j++)
		{
			outQuanFile<<W[i][j]<<"   ";
		}
		outQuanFile<<"\n";
	}
	outQuanFile<<"B\n";
	for(int ii=0;ii<ON;ii++)
	{
		for(int jj=0;jj<HN;jj++)
		{
			outQuanFile<<V[ii][jj]<<"   ";
		}
		outQuanFile<<"\n";
	}
	outYuFile<<"輸出層的閾值為:\n";
	for(int k=0;k<ON;k++)
	{
		outYuFile<<YU_ON[k]<<"  ";  //輸出層閾值寫入文本
	}
	outYuFile<<"\n隱層的閾值為:\n";
	for(int kk=0;kk<HN;kk++)
	{
		outYuFile<<YU_HN[kk]<<"  ";  //隱層閾值寫入文本
	}
	outQuanFile.close();
}
/**********************/
/**程序入口,即主程序**/
/**********************/
void main()
{

double sum_err;
int study;//訓練次數

a = 0.7;
b = 0.7;

alpha = 0.9;  //動量因子

study=0; //學習次數
double Pre_error ; //預定誤差
Pre_error = 0.0001;

int Pre_times;
Pre_times = 200;

GetTrainingData();
initial(); //隱層、輸出層權、閾值初始化 (1) 
do
{
++study; 
for (int m=0;m<N;m++) 
{
input_P(m); //輸入第m個學習樣本 (2)
input_T(m);//輸入第m個樣本的教師信號 (3)
H_I_O(); //第m個學習樣本隱層各單元輸入、輸出值 (4)
O_I_O(); //第m個學習樣本輸出層各單元輸入、輸出值 (5)
Err_O_H(m); //第m個學習樣本輸出層至隱層一般化誤差 (6) 
Err_H_I(); //第m個學習樣本隱層至輸入層一般化誤差 (7)
Delta_O_H(m,study); //第m個學習樣本輸出層至隱層權閾值調整、修改 (8)
Delta_H_I(m,study); //第m個學習樣本隱層至輸入層權閾值調整、修改 (9)
} //全部樣本訓練完畢
sum_err=Err_Sum(); //全部樣本全局誤差計算 (10)
saveWV(study);  //把本次的學習權值全保存到數組
cout<<"第"<<study<<"次學習的均方誤差為"<<sum_err<<endl;
}while (sum_err > Pre_error); 
cout<<"網絡已經學習了"<<study<<"次,學習的均方誤差為"<<sum_err<<endl;
savequan();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色老汉一区二区三区| 欧美一激情一区二区三区| 欧美系列一区二区| 精品福利在线导航| 亚洲人成精品久久久久| 老司机免费视频一区二区| 国产精品亚洲午夜一区二区三区| 在线观看av不卡| 国产精品嫩草影院com| 青娱乐精品视频在线| 色哟哟在线观看一区二区三区| 精品国产污污免费网站入口| 亚洲在线观看免费视频| 成人aa视频在线观看| 午夜视频一区在线观看| av在线一区二区三区| 精品国产精品一区二区夜夜嗨| 亚洲男帅同性gay1069| 国产成人精品免费看| 91麻豆精品国产| 亚洲国产精品影院| 欧美精品一区男女天堂| 亚洲成人精品影院| 色一区在线观看| 亚洲欧洲三级电影| 成人午夜激情视频| 久久精品欧美日韩精品 | 欧亚一区二区三区| 国产精品久久久久婷婷| 国产激情视频一区二区在线观看| 4438x成人网最大色成网站| 亚洲123区在线观看| 色吊一区二区三区| 亚洲一区二区精品视频| 在线视频欧美精品| 亚洲精品高清在线观看| 色婷婷久久久久swag精品| 中文字幕日韩一区二区| 成人免费观看av| 国产精品久久久一本精品 | 亚洲福中文字幕伊人影院| 91老司机福利 在线| 亚洲另类中文字| 欧美色网一区二区| 日本不卡的三区四区五区| 51精品久久久久久久蜜臀| 五月婷婷另类国产| 欧美一卡二卡三卡| 国产一区在线不卡| 亚洲国产精品精华液ab| 成人精品鲁一区一区二区| 国产精品不卡在线| 日本韩国欧美三级| 日本免费新一区视频| 欧美精品一区二区三区蜜桃| 丰满放荡岳乱妇91ww| 亚洲综合成人在线| 日韩欧美色综合| 顶级嫩模精品视频在线看| 亚洲精品一二三| 6080yy午夜一二三区久久| 国产剧情一区二区三区| 中文字幕亚洲一区二区va在线| 欧美色国产精品| 久久国产日韩欧美精品| 国产精品视频第一区| 欧美日韩高清影院| 国产成人在线视频播放| 亚洲日本成人在线观看| 日韩一区和二区| 波多野结衣中文字幕一区| 视频一区二区欧美| 久久久噜噜噜久久中文字幕色伊伊 | 日本久久精品电影| 蜜桃av一区二区| ...xxx性欧美| 欧美成人aa大片| 一本久久综合亚洲鲁鲁五月天| 日韩精品乱码免费| 亚洲天堂网中文字| 日韩免费观看高清完整版 | 精品一区精品二区高清| 亚洲色图另类专区| 久久美女艺术照精彩视频福利播放| 一本色道久久综合亚洲91| 狠狠色丁香婷综合久久| 亚洲电影一级片| 国产精品国产三级国产三级人妇| 51精品视频一区二区三区| 91免费看片在线观看| 国产精品一品视频| 秋霞成人午夜伦在线观看| 亚洲在线中文字幕| 亚洲日韩欧美一区二区在线| 久久久亚洲精品一区二区三区| 欧美挠脚心视频网站| a级精品国产片在线观看| 国产一区二区女| 美女视频一区二区三区| 亚洲高清久久久| 亚洲综合一二区| 亚洲综合网站在线观看| 中文字幕一区在线观看视频| 精品福利视频一区二区三区| 欧美精品高清视频| 欧美挠脚心视频网站| 欧美午夜免费电影| 在线精品视频一区二区三四| 99re热这里只有精品视频| 国产成人免费视频精品含羞草妖精| 美女免费视频一区| 麻豆国产一区二区| 蜜桃一区二区三区四区| 美女视频黄久久| 九九视频精品免费| 激情小说亚洲一区| 国产在线观看免费一区| 久久精品国产第一区二区三区| 日本欧美大码aⅴ在线播放| 偷窥少妇高潮呻吟av久久免费| 亚洲五码中文字幕| 天天操天天色综合| 青青草国产精品97视觉盛宴| 奇米亚洲午夜久久精品| 韩国理伦片一区二区三区在线播放 | 婷婷丁香久久五月婷婷| 日韩av午夜在线观看| 精品一区在线看| 成人免费视频app| 色综合久久久久综合体| 欧美天堂一区二区三区| 欧美视频三区在线播放| 日韩一区二区电影在线| www欧美成人18+| 中文字幕中文字幕在线一区| 亚洲乱码国产乱码精品精的特点 | 国产精品卡一卡二卡三| 亚洲欧美综合色| 亚洲乱码日产精品bd| 亚洲成在人线在线播放| 蜜臀久久久久久久| 风间由美一区二区av101| 色婷婷久久久亚洲一区二区三区 | 91黄视频在线观看| 欧美精品 国产精品| 日韩欧美一级片| 国产欧美一区二区三区网站| 亚洲另类春色校园小说| 另类调教123区| 一本色道久久综合亚洲aⅴ蜜桃 | 制服丝袜亚洲播放| 亚洲精品在线电影| 亚洲欧美日韩人成在线播放| 日本欧美肥老太交大片| 不卡在线观看av| 欧美一区二区视频网站| 国产精品免费丝袜| 天天做天天摸天天爽国产一区| 精一区二区三区| 色悠久久久久综合欧美99| 精品sm捆绑视频| 洋洋av久久久久久久一区| 国产一区二区在线看| 欧美综合一区二区三区| 2020国产精品自拍| 午夜精品爽啪视频| www.亚洲精品| 精品国产sm最大网站免费看| 亚洲乱码国产乱码精品精可以看 | 免费xxxx性欧美18vr| 色综合久久综合网97色综合| 欧美一区二区三区视频免费播放| 国产精品久久久久7777按摩| 美国毛片一区二区| 欧美亚日韩国产aⅴ精品中极品| 久久久精品中文字幕麻豆发布| 午夜精品福利一区二区蜜股av| yourporn久久国产精品| 欧美xxxx在线观看| 日韩中文字幕亚洲一区二区va在线| 成人精品视频网站| 久久久午夜电影| 国精品**一区二区三区在线蜜桃| 3atv在线一区二区三区| 一区二区视频在线| 成人av网站在线观看| 久久综合久久综合九色| 美女视频免费一区| 91精品国产综合久久福利| 亚洲高清在线精品| 91亚洲男人天堂| 亚洲图片另类小说| 成人福利视频在线看| 国产亚洲欧美一区在线观看| 美国毛片一区二区| 欧美videos大乳护士334| 日本91福利区| 91精品久久久久久久久99蜜臂| 亚洲一区二区欧美激情| 欧美日韩视频在线一区二区|