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

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

?? c++的bp算法源程序.txt

?? C++的BP算法程序
?? TXT
字號:
C++的BP算法源程序

                   #include "iostream.h"

 
                   #include "iomanip.h"
                  #define N 20 //學習樣本個數
                  #define IN 1 //輸入層神經元數目
                  #define HN 8 //隱層神經元數目
                  #define ON 1 //輸出層神經元數目
                  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 sita[HN]; //隱層的閾值
                  double gama[ON]; //輸出層的閾值
                  double err_m[N]; //第m個樣本的總誤差
                  double alpha; //輸出層至隱層的學習效率
                  double beta; //隱層至輸入層學習效率
                  //定義一個放學習樣本的結構
                  struct {
                  double input[IN];
                  double teach[ON];
                  }Study_Data[N][IN];
                   
                  ///////////////////////////
                  //初始化權、閾值子程序/////
                  ///////////////////////////
                  initial()
                  {
                  float sgn;
                  float rnd;
                  int i,j;
                  //隱層權、閾值初始化//
                    {
                    //sgn=pow((-1),random(100));
                    sgn=rand();
                    rnd=sgn*(rand()%100);
                    W[j][i]= rnd/100;//隱層權值初始化。
                    }
                  //randomize();
                    {
                  //sgn=pow((-1),random(1000));
                    sgn=rand();
                    rnd=sgn*(rand()%1000);
                    sita[j]= rnd/1000;//中間層閾值初始化
                    cout<<"sita"<<sita[j]<<endl;
                    }
                  //輸出層權、閾值初始化//
                  //randomize();
                  for (int k=0;k<ON;k++)
                   for (int j=0;j<HN;j++) 
                   {
                   //sgn=pow((-1),random(1000));
                     sgn=rand();
                     rnd=sgn*(rand()%1000);
                     V[k][j]=rnd/1000;//第m個樣本輸出層權值初始化
                   }
                  //randomize();
                    {
                    //sgn=pow((-1),random(10));
                    sgn=rand();
                    rnd=sgn*(rand()%10);
                    gama[k]=rnd/10;//輸出層閾值初始化
                    cout<<"gama[k]"<<endl;
                    }
                    return 1;
                   
                  }//子程序initial()結束

                  ////////////////////////////////
                  ////第m個學習樣本輸入子程序///
                  ///////////////////////////////
                  input_P(int m)
                  {
                  for (int i=0;i<IN;i++)
                   P[i]=Study_Data[m]->input[i];
                  //獲得第m個樣本的數據
                  //cout<<"第"< //fprintf(fp,"第%d個樣本的學習輸入:
                  //P[%d]=%f\n",m,P[i]);
                  return 1;
                  }//子程序input_P(m)結束
                  /////////////////////////////
                  ////第m個樣本教師信號子程序//
                  /////////////////////////////
                  input_T(int m)
                  {
                  for (int k=0;k<m;k++)
                   T[k]=Study_Data[m]->teach[k];
                  //cout<<"第"< //fprintf(fp,"第%d個樣本的教師信號:T[% d] =%f\n",m,T[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 - sita[i];//求隱層凈輸入
                  H[j]=1.0/(1.0+exp(-X[j]));//求隱層輸出
                  }
                  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-gama[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 output=0;output<ON;output++)  //output???
                    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 hidden=0;hidden
                    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,FILE* fp)
                  {
                  for (int k=0;k<ON;k++)
                   for (int j=0;j<HN;j++)
                    //cout<<"第"< 
fprintf(fp,"第%d個樣本時的輸出層至隱層的權值為:%f\n",m,W[k][j]);
                    V[k][j]+=alpha*d_err[k]*H[j];//輸出層至隱層的權值調整
                  }
                  gama[k]+=alpha*d_err[k];//輸出層至隱層的閾值調整
                  }
                  return 1;
                  }//子程序Delta_O_H()結束
                  /////////////////////////////////////////////////////
                  //隱層至輸入層的權值調整、隱層閾值調整計算子程序/////
                  /////////////////////////////////////////////////////
                  Delta_H_I(int m,FILE* fp)
                  {
                  for (int j=0;j<HN;j++)
                    for (int i=0;i<IN;i++) 
                   //cout<<"第"< fprintf(fp,"第%d個樣本時的輸出層至隱層的權值為:%f\n",m,V[j][i]);
                  W[j][i]+=beta*e_err[j]*P[i];//隱層至輸入層的權值調整
                  }
                  sita[j]+=beta*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 1;
                  }//子程序Err_sum()結束
                  /**********************/
                  /**程序入口,即主程序**/
                  /**********************/
                  main()
                  {
                  FILE *fp;
                  double sum_err;
                  int study;//訓練次數
                  if ((fp=fopen("bp.txt","a+"))==NULL)
                  {
                  printf("不能創建bp.txt文件!\n");
                  exit(1);
                  }
                  cout<<"請輸入輸出層到隱含層學習效率: alpha=\n";
                  cin>>alpha;
                  cout<<"請輸入隱含層到輸入層學習效率: beta=\n";
                  cin>>beta;
                  int study=0; //學習次數
                  double Pre_error ; //預定誤差
                  cout<<"請輸入預定誤差: Pre_error= \n";
                  cin>>Pre_error;
                  int Pre_times;
                  cout<<"請輸入預定最大學習次數:Pre_times=\n";
                  cin>>Pre_times;
                  cout<<"請輸入學習樣本數據\n";
                  {
                  for (int m=0;m<N;m++)
                    cout<<"請輸入第"<<m+1<<"組學習樣本"<<endl; 
                     for (int i=0;i<IN;i++)
                      cin>>Study_Data[m]->input[i];
                  }
                  {  
                  for (int m=0;m<N;m++)
                   cout<<"請輸入第"<<m+1<<"組教師樣本"<<endl; 
                    for (int k=0;k<ON;k++)
                   cin>>Study_Data[m]->teach[k];
                  }
                  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,fp); //第m個學習樣本輸出層至隱層權閾值調整、修改 (8)
                  Delta_H_I(m,fp); //第m個學習樣本隱層至輸入層權閾值調整、修改 (9)
                  } //全部樣本訓練完畢
                  sum_err=Err_Sum(); //全部樣本全局誤差計算 (10)
                  {
                  cout<<"第"<<study<<"次學習的均方誤差為"<<sum_err<<endl;
                  fprintf(fp,"第%d次學習的均方誤差為:%f\n",study,sum_err);
                  }
                  while (sum_err > Pre_error)    //or(study
                  { //N個樣本全局誤差小于預定誤差否? 小于則退出 (11)
                  cout<<"網絡已經學習了"<<study<<"次,學習的均方誤差為"<<sum_err<<endl;
                  fprintf(fp,"網絡已經學習了%d次,現在的全局誤差為:%f\n",study,total_err);
                  fclose(fp);
                  }
                  char s;
                  cout<<"請隨便輸入一個字符,按回車退出程序!\n";
                  cin>>s;
                  return 1;
                  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线播放| 亚洲国产高清不卡| 91麻豆精品秘密| 在线成人免费视频| 91福利社在线观看| 91久久精品一区二区三区| 91小视频免费观看| 欧美中文字幕一区二区三区亚洲| 色综合久久综合中文综合网| 91黄色免费观看| 欧美午夜精品久久久久久超碰 | 一区二区三区欧美亚洲| 一区二区三区成人在线视频| 亚洲国产aⅴ天堂久久| 亚洲电影你懂得| 老司机精品视频线观看86| 国产精品123区| 一本一道久久a久久精品| 制服.丝袜.亚洲.另类.中文| 欧美精品一区二区三区一线天视频| 欧美不卡123| 亚洲色图欧美偷拍| 欧美bbbbb| 成人网男人的天堂| 欧美高清视频一二三区 | 日韩电影免费在线| 国产成人免费视频精品含羞草妖精| k8久久久一区二区三区 | 一本大道久久精品懂色aⅴ| 欧美视频一区二区三区| 欧美成人精品高清在线播放| 另类成人小视频在线| 成人免费毛片嘿嘿连载视频| 欧美日韩亚洲综合| 国产欧美日韩不卡| 日日摸夜夜添夜夜添国产精品| 国产伦精品一区二区三区免费迷| 97久久精品人人爽人人爽蜜臀| 日韩欧美123| 亚洲一区免费观看| 国产成人精品综合在线观看| 欧美卡1卡2卡| 中文字幕亚洲在| 精品一区二区三区久久| 欧美性猛交xxxx乱大交退制版| 久久久激情视频| 日韩不卡一区二区三区 | 午夜亚洲国产au精品一区二区| 国产在线视频一区二区| 欧美高清视频一二三区| 亚洲欧美偷拍三级| 成人精品视频网站| 久久综合五月天婷婷伊人| 午夜精品视频一区| 色综合激情久久| 中文字幕中文乱码欧美一区二区| 国产在线精品一区在线观看麻豆| 欧美精品乱码久久久久久| 亚洲精品免费播放| 成人开心网精品视频| 久久久不卡网国产精品二区| 美女在线视频一区| 欧美精品丝袜中出| 亚洲sss视频在线视频| 色94色欧美sute亚洲13| 亚洲视频一区二区在线| 风流少妇一区二区| 国产亚洲欧美色| 国产制服丝袜一区| 精品久久国产字幕高潮| 久久99久久99| 精品国产污污免费网站入口| 蜜桃视频一区二区三区| 欧美二区乱c少妇| 日韩电影免费在线看| 日韩精品最新网址| 久久成人18免费观看| 久久亚洲捆绑美女| 国产福利一区在线观看| 国产精品区一区二区三区| 成人免费视频播放| 亚洲激情六月丁香| 欧美日韩国产综合一区二区三区| 亚洲无线码一区二区三区| 欧美高清视频www夜色资源网| 天堂久久一区二区三区| 精品欧美久久久| 国产aⅴ综合色| 日韩毛片一二三区| 欧美精品乱码久久久久久按摩| 毛片基地黄久久久久久天堂| 久久综合色婷婷| 成人一二三区视频| 亚洲一区二区三区不卡国产欧美| 欧美视频一区在线观看| 国内精品伊人久久久久影院对白| 久久久久久一二三区| 91免费国产视频网站| 日韩电影在线免费| 亚洲国产精品成人久久综合一区| 色婷婷精品久久二区二区蜜臂av | 欧美xxxxxxxx| 欧美一区二区三区白人| 国产美女精品一区二区三区| 最新国产の精品合集bt伙计| 在线观看91av| 成人精品一区二区三区中文字幕| 亚洲国产综合色| 国产拍欧美日韩视频二区| 欧美在线观看一区| 国产一区二区视频在线播放| 亚洲综合色在线| 久久精品亚洲精品国产欧美| 欧美日韩综合不卡| 成人午夜视频在线观看| 免费成人结看片| 亚洲精品第1页| 久久久青草青青国产亚洲免观| 欧美色精品在线视频| 不卡的av在线| 国内精品嫩模私拍在线| 天堂一区二区在线免费观看| 国产精品乱子久久久久| 精品国产一区二区三区四区四 | 成熟亚洲日本毛茸茸凸凹| 五月天网站亚洲| 国产在线麻豆精品观看| 三级影片在线观看欧美日韩一区二区 | 欧美三级日韩三级| www.成人在线| 国产盗摄一区二区| 久久成人免费电影| 免费精品视频在线| 午夜电影网一区| 亚洲午夜日本在线观看| 亚洲视频每日更新| 中文字幕亚洲精品在线观看| 亚洲精品在线免费观看视频| 欧美一区二区在线视频| 日本高清不卡视频| 色狠狠一区二区| 91美女蜜桃在线| 91小视频在线免费看| 99国产精品视频免费观看| 国产黄人亚洲片| 国产精品88av| 韩国理伦片一区二区三区在线播放 | 国产一区999| 狠狠色丁香久久婷婷综合_中| 日本不卡一二三区黄网| 麻豆精品一区二区三区| 裸体健美xxxx欧美裸体表演| 美女网站色91| 激情五月婷婷综合网| 国内久久婷婷综合| 国产suv精品一区二区883| 成人性生交大片| 99精品热视频| 久久综合色综合88| 中文字幕av一区二区三区高| 国产精品白丝在线| 一区二区三区加勒比av| 婷婷六月综合网| 麻豆精品在线视频| 国产精品一区二区果冻传媒| 高清shemale亚洲人妖| 99r精品视频| 欧美性受极品xxxx喷水| 日韩欧美成人一区| 欧美国产日韩一二三区| 亚洲综合成人在线视频| 三级不卡在线观看| 国产成人综合视频| 色噜噜狠狠一区二区三区果冻| 欧美日韩亚洲高清一区二区| 精品国产91乱码一区二区三区| 久久看人人爽人人| 中文字幕视频一区二区三区久| 亚洲自拍偷拍图区| 精品在线一区二区| 99在线精品视频| 欧美一区二区二区| 中文字幕欧美区| 日韩和欧美一区二区三区| 国产伦精品一区二区三区免费迷 | 3atv一区二区三区| 国产亚洲欧洲997久久综合| 亚洲精品欧美激情| 久久99精品久久久久久久久久久久| 成人sese在线| 欧美一级在线观看| 国产精品每日更新| 老司机精品视频在线| 91免费在线播放| 久久久久久电影| 日韩国产精品久久| 色婷婷综合视频在线观看| 久久精品日产第一区二区三区高清版 | 欧美久久一二区| 亚洲同性gay激情无套|