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

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

?? bpnet.cpp

?? BP人工神經網絡的程序
?? CPP
字號:
// ********************************
// ***  annstudy.cpp  *************
// ********************************

#include "bpnet.h"

CBPNet::CBPNet()
{
	m_InputNumber=2;   //輸入層神經元個數初始化
	m_HidenNumber=2;   //中間層神經元個數初始化
	m_OutputNumber=1;  //輸出層神經元個數初始化

}


/******************************************************/
//初始化各連接權值及各層閾值,賦予(-2,+2)或(-1,+1)之間的	
//隨機數
//
/******************************************************/

void CBPNet::InitAnnData()
{
	ofstream oss("InitWeig.dat");
	for(int j=0;j<m_HidenNumber;j++)
	{
		for(int i=0;i<m_InputNumber;i++)
		{
			Weight_In_Hd[j*m_InputNumber+i]=
				(double)(3*rand()/32767.0-1.618); //(-2,+2)間隨機數
		//		(double)(2*rand()/32767.0-1.0);   //(-1,+1)間隨機數
			oss<<Weight_In_Hd[j*m_InputNumber+i]<<"    ";
		}
		oss<<endl;
	}
	
	oss<<endl<<endl<<endl;
	
	for(int t=0;t<m_OutputNumber;t++)
	{
		for(int j=0;j<m_HidenNumber;j++)
		{
			Weight_Hd_Ot[t*m_HidenNumber+j]=
				(double)(3*rand()/32767.0-1.618);
			oss<<Weight_Hd_Ot[t*m_HidenNumber+j]<<"    ";
		}
		oss<<endl;
	}
	
	oss<<endl<<endl<<endl;
	
	for(j=0;j<m_HidenNumber;j++)
	{
		Sita[j]=(double)(3*rand()/32767.0-1.618);
		oss<<Sita[j]<<"     ";
		if(j%5==0)  oss<<endl;
	}
	
	oss<<endl<<endl<<endl;
	
	for(t=0;t<m_OutputNumber;t++)
	{
		Gama[t]=(double)(3*rand()/32767.0-1.618);
		oss<<Gama[t]<<"     ";
		if(t%5==0)  oss<<endl;
	}
	oss.close();
}

void CBPNet::LearnInit(int nSample,double a,double  b,double Error,
						  char* ReadStudyFile,char* SaveAnnDataFile)
{

	m_nSample=nSample;
	alpha=a;
	beta=b;
	ErrorLimit=Error;
	strcpy(StudyFile,ReadStudyFile);
	strcpy(AnnDataFile,SaveAnnDataFile);

	Weight_In_Hd=new double[m_InputNumber*m_HidenNumber];
	Weight_Hd_Ot=new double[m_HidenNumber*m_OutputNumber];
	Sita=new double[m_HidenNumber];
	Gama=new double[m_OutputNumber];
	StudyModel=new double[m_nSample*m_InputNumber];
	TeacherModel=new double[m_nSample*m_OutputNumber];
	OutputOfHd=new double[m_HidenNumber];
	OutputOfOt=new double[m_OutputNumber];
	Delt_Hd=new double[m_HidenNumber];
	Delt_Ot=new double[m_OutputNumber];

}


void CBPNet::ReadAnnData( )
{
	long  FilePosition;
	ifstream input("InitWeig.dat");
	for(int j=0;j<m_HidenNumber;j++)
	for(int i=0;i<m_InputNumber;i++)
		 input>>Weight_In_Hd[j*m_InputNumber+i];

	FilePosition=input.tellg();

	for(int t=0;t<m_OutputNumber;t++)
	for(j=0;j<m_HidenNumber;j++)
		 input>>Weight_Hd_Ot[t*m_HidenNumber+j];

	FilePosition=input.tellg();

	for(j=0;j<m_HidenNumber;j++)
	   input>>Sita[j];

	FilePosition=input.tellg();

	for(t=0;t<m_OutputNumber;t++)
	  input>>Gama[t];

	input.close();



}

void CBPNet::ReadSample( )
{

   long  FilePosition;

   ifstream iss(StudyFile);
   for(int i=0;i<m_nSample;i++)
	   for(int j=0;j<m_InputNumber;j++)
		   iss>>StudyModel[i*m_InputNumber+j];
   FilePosition=iss.tellg();
   for(i=0;i<m_nSample;i++)
	   for(int t=0;t<m_OutputNumber;t++)
		   iss>>TeacherModel[i*m_OutputNumber+t];
   iss.close();
}


void CBPNet::Forward(int NumSample)
{
	double inival;

 // Input and Output of Hiden Layer nodes
	for(int j=0;j<m_HidenNumber;j++)
	{
	 inival=0.0;
	 for(int i=0;i<m_InputNumber;i++)
		inival+=(Weight_In_Hd[j*m_InputNumber+i]*
					  StudyModel[NumSample*m_InputNumber+i]);
	 inival+=Sita[j];
	 OutputOfHd[j]=sigmf(inival);
	}

 // Input and Output of Out layer nodes

	  for(int t=0;t<m_OutputNumber;t++)
	{
		 inival=0.0;
		 for(int j=0;j<m_HidenNumber;j++)
		inival+=Weight_Hd_Ot[t*m_HidenNumber+j]*OutputOfHd[j];
		 inival+=Gama[t];
		 OutputOfOt[t]=sigmf(inival);
	}
}

void CBPNet::SampleLearning()
{
	double error,wk,wkb,inival,GlobalError;
	double temp;
	int loop=0;
	InitAnnData();
	ReadAnnData();
	ReadSample();

 do
  {
  
  temp=0.0;
  error=0.0;
  GlobalError=0.0;
  loop+=1;

  for(int n=0;n<m_nSample;n++)
  {

	 Forward(n);

	 /* Calculating Error  of out layer */
	  for(int t=0;t<m_OutputNumber;t++)
	 {
	   wk=OutputOfOt[t];
       wkb=TeacherModel[n*m_OutputNumber+t]-wk;
	   Delt_Ot[t]=wkb*wk*(1-wk);
	   error+=wkb*wkb/2;


	}
  /* Calculating error of hidden layer */ 
  for(int j=0;j<m_HidenNumber;j++)
	{
	 inival=0.0;
	 for(int t=0;t<m_OutputNumber;t++)
	 inival+=(Delt_Ot[t]*Weight_Hd_Ot[t*m_HidenNumber+j]);
	 wk=OutputOfHd[j];
	 Delt_Hd[j]=inival*wk*(1.0-wk);
	}   

/* Updating weight from H layer to Out layer */

   for(t=0;t<m_OutputNumber;t++)
	{
	 for(int j=0;j<m_HidenNumber;j++)
	 Weight_Hd_Ot[t*m_HidenNumber+j]+=(alpha*Delt_Ot[t]*OutputOfHd[j]);
	 Gama[t]+=beta*Delt_Ot[t];
	}


/* Updating weight from I layer to H layer */

  for(j=0;j<m_HidenNumber;j++)
	{
	 for(int i=0;i<m_InputNumber;i++)
	 Weight_In_Hd[j*m_InputNumber+i]+=(alpha*Delt_Hd[j]*StudyModel[n*m_InputNumber+i]);
	 Sita[j]+=beta*Delt_Hd[j];
	}
     GlobalError+=error;

	}
  loop+=1;
  printf("Study times                 GlobalError\n");
  printf("%d                %8.7f\n",loop,GlobalError);

 }  while(GlobalError>ErrorLimit);
		/* Studying end */
 SaveAnnData();
}

void CBPNet::SaveAnnData()
{
	ofstream oss(AnnDataFile);
	for(int j=0;j<m_HidenNumber;j++)
	{
		for(int i=0;i<m_InputNumber;i++)
			oss<<Weight_In_Hd[j*m_InputNumber+i]<<"      ";
		oss<<endl;
	}

	oss<<endl<<endl<<endl;

	for(int t=0;t<m_OutputNumber;t++)
	{
		for(int j=0;j<m_HidenNumber;j++)
			oss<<Weight_Hd_Ot[t*m_HidenNumber+j]<<"       ";
		oss<<endl;
	}

	oss<<endl<<endl<<endl;

	for(j=0;j<m_HidenNumber;j++)
		oss<<Sita[j]<<"      ";

	oss<<endl<<endl;

	for(t=0;t<m_OutputNumber;t++)
		oss<<Gama[t]<<"      ";

	oss.close();

	delete []OutputOfHd;
	delete []OutputOfOt;
	delete []Delt_Hd;
	delete []Delt_Ot;
	delete []StudyModel;
	delete []TeacherModel;
	delete []Weight_In_Hd;
	delete []Weight_Hd_Ot;
	delete []Sita;
	delete []Gama;

}

void CBPNet::TestInit(int mTest,char* ReadTestFile)
{
	
	m_nTest=mTest;
	strcpy(TestDataFile,ReadTestFile);
	
	Weight_In_Hd=new double[m_InputNumber*m_HidenNumber];
	Weight_Hd_Ot=new double[m_HidenNumber*m_OutputNumber];
	Sita=new double[m_HidenNumber];
	Gama=new double[m_OutputNumber];
	TOutputOfHd=new double[m_nTest*m_HidenNumber];
	TOutputOfOt=new double[m_nTest*m_OutputNumber];
	TestModel=new double[m_nTest*m_InputNumber];
	
	
}



void CBPNet::ReadLearnedData()
{
	long  FilePosition;
	ifstream input("trained.dat");
	for(int j=0;j<m_HidenNumber;j++)
	for(int i=0;i<m_InputNumber;i++)
		 input>>Weight_In_Hd[j*m_InputNumber+i];

	FilePosition=input.tellg();

	for(int t=0;t<m_OutputNumber;t++)
	for(j=0;j<m_HidenNumber;j++)
		 input>>Weight_Hd_Ot[t*m_HidenNumber+j];

	FilePosition=input.tellg();

	for(j=0;j<m_HidenNumber;j++)
	   input>>Sita[j];

	FilePosition=input.tellg();

	for(t=0;t<m_OutputNumber;t++)
	  input>>Gama[t];

	input.close();
}

void CBPNet::ReadTestData()
{

   ifstream iss(TestDataFile);
   for(int n=0;n<m_nTest;n++)
	   for(int i=0;i<m_InputNumber;i++)
		   iss>>TestModel[n*m_InputNumber+i];
   iss.close();
}

void CBPNet::Test()
{
   FILE* test=0;
   test=fopen("測試結果.dat","wt");
   ReadLearnedData();
   ReadTestData();

   for(int n=0;n<m_nTest;n++)
   {
	 for(int j=0;j<m_HidenNumber;j++)
	 {
	   double inival=0.0;
	   for(int i=0;i<m_InputNumber;i++)
		inival+=(Weight_In_Hd[j*m_InputNumber+i]*
					  TestModel[n*m_InputNumber+i]);
	   inival+=Sita[j];
	   TOutputOfHd[n*m_HidenNumber+j]=sigmf(inival);
	 }

 // Input and Output of Out layer nodes

	  for(int t=0;t<m_OutputNumber;t++)
	  {
		 double inival=0.0;
		 for(int j=0;j<m_HidenNumber;j++)
			inival+=Weight_Hd_Ot[t*m_HidenNumber+j]*TOutputOfHd[n*m_HidenNumber+j];
		 inival+=Gama[t];
		 TOutputOfOt[n*m_OutputNumber+t]=sigmf(inival);
		 fprintf(test,"%4.3f ",TOutputOfOt[n*m_OutputNumber+t]);
	  }
	    fprintf(test,"\n");
		if((n+1)%5==0) fprintf(test,"\n");

   }

	delete []TOutputOfHd;
	delete []TOutputOfOt;
	delete []TestModel;
	delete []Weight_In_Hd;
	delete []Weight_Hd_Ot;
	delete []Sita;
	delete []Gama;
	fclose(test);

}

CBPNet::~CBPNet()
{
}


void  main()
{

	int  choice;
	CBPNet ann;

	cout<<"Number 1 Stands  the ANN is going to learn"<<endl;
	cout<<"Number 2 Stands  the Trained ANN is to be tested"<<endl;
	cout<<"Please input you  choice:"<<endl;
	cin>>choice;
	if(choice==1)
	{
		ann.LearnInit(4,0.5,0.6,0.01,"study.dat","trained.dat");  
		ann.SampleLearning();
	}
	else if(choice==2)
		{
		  ann.TestInit(3,"測試文件.dat");

		  ann.Test();
		}

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区电影| 狠狠色狠狠色合久久伊人| 色综合夜色一区| 国产日韩精品久久久| 欧美在线一区二区| 亚洲一区二区四区蜜桃| 欧美日韩视频在线第一区 | 色婷婷综合久久久| 亚洲精品一二三区| 91精品国产一区二区三区| 另类小说欧美激情| 国产精品网站在线| 色综合久久中文综合久久97| 亚洲福利一区二区三区| 日韩欧美国产午夜精品| 国产91精品在线观看| 亚洲精品中文在线影院| 日韩一区二区三免费高清| 国产精品一级片| 一区二区三区欧美| 精品免费视频.| 99久久精品情趣| 香蕉久久夜色精品国产使用方法| 日韩精品一区二区三区视频在线观看 | 精品国产免费一区二区三区四区| 国产一区二区精品在线观看| ㊣最新国产の精品bt伙计久久| 色偷偷久久一区二区三区| 天涯成人国产亚洲精品一区av| 日韩精品专区在线影院重磅| 高清shemale亚洲人妖| 亚洲自拍偷拍图区| 精品国产乱码久久久久久浪潮| www.欧美日韩国产在线| 日韩不卡手机在线v区| 国产精品美女视频| 日韩一区二区精品在线观看| 91同城在线观看| 另类中文字幕网| 中文字幕av资源一区| 不卡大黄网站免费看| 五月婷婷激情综合网| 欧美激情中文字幕| 日韩三级视频在线观看| 色婷婷av一区二区三区gif| 狠狠色丁香婷综合久久| 亚洲国产综合人成综合网站| 国产三级三级三级精品8ⅰ区| 欧美视频一二三区| 亚洲国产成人91porn| 久久欧美一区二区| 欧美在线播放高清精品| 精品亚洲国内自在自线福利| ...av二区三区久久精品| 欧美剧情片在线观看| 国产成人免费视频精品含羞草妖精 | 色综合天天综合在线视频| 秋霞影院一区二区| 久久久亚洲国产美女国产盗摄| 99久久久精品| 国产精品一区二区三区网站| 国产精品久久网站| 欧美一级欧美三级| 色网综合在线观看| 国产1区2区3区精品美女| 偷偷要91色婷婷| 一区免费观看视频| 久久久亚洲精华液精华液精华液| 在线电影院国产精品| 波多野结衣亚洲| 韩国中文字幕2020精品| 午夜视频在线观看一区| 国产午夜精品一区二区| 日韩视频免费观看高清完整版 | 国产成人av电影在线| 日韩av网站免费在线| 亚洲欧美日韩在线不卡| 国产日韩欧美a| 欧美一二三区精品| 欧美亚洲国产一卡| www.欧美日韩| 国产ts人妖一区二区| 久久99精品久久久久久动态图| 亚洲成人一区在线| 亚洲精选免费视频| 一区在线中文字幕| 中文字幕一区二区三区色视频| 久久久久久99精品| 久久亚洲精品国产精品紫薇| 精品人伦一区二区色婷婷| 9191国产精品| 91猫先生在线| 欧美日韩在线观看一区二区| 91久久精品国产91性色tv| 一本大道久久a久久精品综合| 成人精品小蝌蚪| 国产aⅴ精品一区二区三区色成熟| 国内精品伊人久久久久av影院 | 亚洲成av人片在线| 亚洲精品欧美激情| 一区二区三区欧美激情| 亚洲国产视频网站| 亚洲国产一区二区视频| 亚洲与欧洲av电影| 日本成人在线不卡视频| 午夜精品久久久久| 日韩中文欧美在线| 裸体健美xxxx欧美裸体表演| 三级不卡在线观看| 美国av一区二区| 国产91色综合久久免费分享| 国产69精品久久777的优势| 成人av影视在线观看| 91在线视频官网| 欧美一区二区三区的| 精品少妇一区二区三区| 国产三级久久久| 亚洲免费色视频| 亚洲午夜私人影院| 免费成人av在线| 国产综合色在线| 9人人澡人人爽人人精品| 在线观看成人免费视频| 91成人看片片| 欧美α欧美αv大片| 国产婷婷一区二区| 亚洲视频一区二区在线| 天天综合色天天综合色h| 久久99精品久久久久久国产越南| 国产91精品久久久久久久网曝门| av午夜精品一区二区三区| 欧美日韩亚洲综合一区| 欧美制服丝袜第一页| 久久久蜜臀国产一区二区| 亚洲乱码国产乱码精品精可以看| 亚洲va天堂va国产va久| 精品一区二区免费| av中文字幕不卡| 欧美一区二区三区免费| 国产精品久久久久久户外露出 | 欧美一级xxx| 国产精品看片你懂得| 亚洲国产精品一区二区久久恐怖片 | 不卡影院免费观看| 欧美电影在哪看比较好| 国产欧美综合在线| 国产精品久久久久久亚洲毛片| 亚洲综合男人的天堂| 国内不卡的二区三区中文字幕 | 欧美体内she精视频| 精品久久久久久最新网址| 日韩理论片中文av| 精品一区二区三区不卡 | 亚洲第一综合色| 奇米四色…亚洲| 欧美丰满一区二区免费视频| 亚洲国产成人私人影院tom| 七七婷婷婷婷精品国产| 91视频精品在这里| 久久久久9999亚洲精品| 日韩不卡一二三区| 欧洲精品在线观看| 中文字幕中文字幕一区二区| 精久久久久久久久久久| 欧美日本韩国一区二区三区视频| 国产精品高潮久久久久无| 国内精品久久久久影院色 | 成人免费毛片片v| 日韩女优毛片在线| 亚洲成在线观看| 高潮精品一区videoshd| 欧美成人高清电影在线| 五月激情丁香一区二区三区| 色婷婷久久综合| 亚洲国产精品99久久久久久久久 | 亚洲精品一区二区三区在线观看| 亚洲综合一区二区| 91丨porny丨蝌蚪视频| 国产欧美一区二区精品婷婷| 另类综合日韩欧美亚洲| 色哟哟亚洲精品| 亚洲欧美在线高清| 成人免费观看视频| 国产欧美精品区一区二区三区 | 国产一区二区伦理片| 欧美精品一区在线观看| 九九精品一区二区| 欧美日韩在线观看一区二区| 亚洲乱码国产乱码精品精小说| 欧美三级电影精品| 午夜精品免费在线观看| 欧美日韩中文字幕精品| 亚洲成人av福利| 欧美精选一区二区| 日韩影院精彩在线| 精品卡一卡二卡三卡四在线| 久久99精品国产麻豆婷婷 | 久久这里都是精品| 国产麻豆欧美日韩一区| 欧美白人最猛性xxxxx69交|