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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

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

?? C++的BP程序
?? TXT
字號(hào):
C++的BP算法源程序神經(jīng)網(wǎng)絡(luò)

                 C++的BP算法源程序    熱      
            C++的BP算法源程序 
    
                  #include "iostream.h"
                  #include "iomanip.h"
                  #define N 20 //學(xué)習(xí)樣本個(gè)數(shù)
                  #define IN 1 //輸入層神經(jīng)元數(shù)目
                  #define HN 8 //隱層神經(jīng)元數(shù)目
                  #define ON 1 //輸出層神經(jīng)元數(shù)目
                  double P[IN]; //單個(gè)樣本輸入數(shù)據(jù)
                  double T[ON]; //單個(gè)樣本教師數(shù)據(jù)
                  double W[HN][IN]; //輸入層至隱層權(quán)值
                  double V[ON][HN]; //隱層至輸出層權(quán)值
                  double X[HN]; //隱層的輸入
                  double Y[ON]; //輸出層的輸入
                  double H[HN]; //隱層的輸出
                  double O[ON]; //輸出層的輸出
                  double sita[HN]; //隱層的閾值
                  double gama[ON]; //輸出層的閾值
                  double err_m[N]; //第m個(gè)樣本的總誤差
                  double alpha; //輸出層至隱層的學(xué)習(xí)效率
                  double beta; //隱層至輸入層學(xué)習(xí)效率
                  //定義一個(gè)放學(xué)習(xí)樣本的結(jié)構(gòu)
                  struct {
                  double input[IN];
                  double teach[ON];
                  }Study_Data[N][IN];
                   
                  ///////////////////////////
                  //初始化權(quán)、閾值子程序/////
                  ///////////////////////////
                  initial()
                  {
                  float sgn;
                  float rnd;
                  int i,j;
                  //隱層權(quán)、閾值初始化//
                    {
                    //sgn=pow((-1),random(100));
                    sgn=rand();
                    rnd=sgn*(rand()%100);
                    W[j][i]= rnd/100;//隱層權(quán)值初始化。
                    }
                  //randomize();
                    {
                  //sgn=pow((-1),random(1000));
                    sgn=rand();
                    rnd=sgn*(rand()%1000);
                    sita[j]= rnd/1000;//中間層閾值初始化
                    cout<<"sita"<<sita[j]<<endl;
                    }
                  //輸出層權(quán)、閾值初始化//
                  //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個(gè)樣本輸出層權(quán)值初始化
                   }
                  //randomize();
                    {
                    //sgn=pow((-1),random(10));
                    sgn=rand();
                    rnd=sgn*(rand()%10);
                    gama[k]=rnd/10;//輸出層閾值初始化
                    cout<<"gama[k]"<<endl;
                    }
                    return 1;
                   
                  }//子程序initial()結(jié)束

                  ////////////////////////////////
                  ////第m個(gè)學(xué)習(xí)樣本輸入子程序///
                  ///////////////////////////////
                  input_P(int m)
                  {
                  for (int i=0;i<IN;i++)
                   P[i]=Study_Data[m]->input[i];
                  //獲得第m個(gè)樣本的數(shù)據(jù)
                  //cout<<"第"< //fprintf(fp,"第%d個(gè)樣本的學(xué)習(xí)輸入:
                  //P[%d]=%f\n",m,P[i]);
                  return 1;
                  }//子程序input_P(m)結(jié)束
                  /////////////////////////////
                  ////第m個(gè)樣本教師信號(hào)子程序//
                  /////////////////////////////
                  input_T(int m)
                  {
                  for (int k=0;k<m;k++)
                   T[k]=Study_Data[m]->teach[k];
                  //cout<<"第"< //fprintf(fp,"第%d個(gè)樣本的教師信號(hào):T[%d]=%f\n",m,T[k]);
                  return 1;
                  }//子程序input_T(m)結(jié)束
                  /////////////////////////////////
                  //隱層各單元輸入、輸出值子程序///
                  /////////////////////////////////
                  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];//求隱層內(nèi)積
                  }
                  X[j]=sigma - sita[i];//求隱層凈輸入
                  H[j]=1.0/(1.0+exp(-X[j]));//求隱層輸出
                  }
                  return 1;
                  }//子程序H_I_O()結(jié)束
                  ///////////////////////////////////
                  //輸出層各單元輸入、輸出值子程序///
                  ///////////////////////////////////
                  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];//求輸出層內(nèi)積
                  }
                  Y[k]=sigma-gama[k]; //求輸出層凈輸入
                  O[k]=1.0/(1.0+exp(-Y[k]));//求輸出層輸出
                  }
                  return 1;
                  }//子程序O_I_O()結(jié)束
                  ////////////////////////////////////
                  //輸出層至隱層的一般化誤差子程序////
                  ////////////////////////////////////
                  double d_err[ON];
                  Err_O_H(int m)
                  {
                  double abs_err[ON];//每個(gè)樣本的絕對(duì)誤差都是從0開始的
                  double sqr_err=0;//每個(gè)樣本的平方誤差計(jì)算都是從0開始的
                  //for (int output=0;output<ON;output++)  //output???
                    for (int k=0;k<ON;k++)
                    abs_err[k]=T[k]-O[k];
                  //求第m個(gè)樣本下的第k個(gè)神經(jīng)元的絕對(duì)誤差
                  sqr_err+=(abs_err[k])*(abs_err[k]);//求第m個(gè)樣本下輸出層的平方誤差
                  d_err[k]=abs_err[k]*O[k]*(1.0-O[k]);//d_err[k]輸出層各神經(jīng)元的一般化誤差
                  }
                  err_m[m]=sqr_err/2;//第m個(gè)樣本下輸出層的平方誤差/2=第m個(gè)樣本的均方誤差
                  return 1;
                  }//子程序Err_O_H(m)結(jié)束
                  ////////////////////////////////////
                  //隱層至輸入層的一般化誤差子程序////
                  ////////////////////////////////////
                  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]);//隱層各神經(jīng)元的一般化誤差
                  }
                  return 1;
                  }//子程序Err_H_I()結(jié)束
                  ////////////////////////////////////////////////////////
                  //輸出層至隱層的權(quán)值調(diào)整、輸出層閾值調(diào)整計(jì)算子程序//////
                  ////////////////////////////////////////////////////////
                  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個(gè)樣本時(shí)的輸出層至隱層的權(quán)值為:%f\n",m,W[k][j]);
                    V[k][j]+=alpha*d_err[k]*H[j];//輸出層至隱層的權(quán)值調(diào)整
                  }
                  gama[k]+=alpha*d_err[k];//輸出層至隱層的閾值調(diào)整
                  }
                  return 1;
                  }//子程序Delta_O_H()結(jié)束
                  /////////////////////////////////////////////////////
                  //隱層至輸入層的權(quán)值調(diào)整、隱層閾值調(diào)整計(jì)算子程序/////
                  /////////////////////////////////////////////////////
                  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個(gè)樣本時(shí)的輸出層至隱層的權(quán)值為:%f\n",m,V[j][i]);
                  W[j][i]+=beta*e_err[j]*P[i];//隱層至輸入層的權(quán)值調(diào)整
                  }
                  sita[j]+=beta*e_err[j];
                  }
                  return 1;
                  }//子程序Delta_H_I()結(jié)束
                  /////////////////////////////////
                  //N個(gè)樣本的全局誤差計(jì)算子程序////
                  /////////////////////////////////
                  double Err_Sum()
                  {
                  double total_err=0;
                  for (int m=0;m<N;m++) 
                    total_err+=err_m[m];//每個(gè)樣本的均方誤差加起來就成了全局誤差
                  }
                  return 1;
                  }//子程序Err_sum()結(jié)束
                  /**********************/
                  /**程序入口,即主程序**/
                  /**********************/
                  main()
                  {
                  FILE *fp;
                  double sum_err;
                  int study;//訓(xùn)練次數(shù)
                  if ((fp=fopen("bp.txt","a+"))==NULL)
                  {
                  printf("不能創(chuàng)建bp.txt文件!\n");
                  exit(1);
                  }
                  cout<<"請(qǐng)輸入輸出層到隱含層學(xué)習(xí)效率: alpha=\n";
                  cin>>alpha;
                  cout<<"請(qǐng)輸入隱含層到輸入層學(xué)習(xí)效率: beta=\n";
                  cin>>beta;
                  int study=0; //學(xué)習(xí)次數(shù)
                  double Pre_error ; //預(yù)定誤差
                  cout<<"請(qǐng)輸入預(yù)定誤差: Pre_error= \n";
                  cin>>Pre_error;
                  int Pre_times;
                  cout<<"請(qǐng)輸入預(yù)定最大學(xué)習(xí)次數(shù):Pre_times=\n";
                  cin>>Pre_times;
                  cout<<"請(qǐng)輸入學(xué)習(xí)樣本數(shù)據(jù)\n";
                  {
                  for (int m=0;m<N;m++)
                    cout<<"請(qǐng)輸入第"<<m+1<<"組學(xué)習(xí)樣本"<<endl; 
                     for (int i=0;i<IN;i++)
                      cin>>Study_Data[m]->input[i];
                  }
                  {  
                  for (int m=0;m<N;m++)
                   cout<<"請(qǐng)輸入第"<<m+1<<"組教師樣本"<<endl; 
                    for (int k=0;k<ON;k++)
                   cin>>Study_Data[m]->teach[k];
                  }
                  initial(); //隱層、輸出層權(quán)、閾值初始化 (1) 
                  do
                  {
                  ++study; ///???
                  for (int m=0;m<N;m++) 
                  {
                  input_P(m); //輸入第m個(gè)學(xué)習(xí)樣本 (2)
                  input_T(m);//輸入第m個(gè)樣本的教師信號(hào) (3)
                  H_I_O(); //第m個(gè)學(xué)習(xí)樣本隱層各單元輸入、輸出值 (4)
                  O_I_O(); //第m個(gè)學(xué)習(xí)樣本輸出層各單元輸入、輸出值 (5)
                  Err_O_H(m); //第m個(gè)學(xué)習(xí)樣本輸出層至隱層一般化誤差 (6) 
                  Err_H_I(); //第m個(gè)學(xué)習(xí)樣本隱層至輸入層一般化誤差 (7)
                  Delta_O_H(m,fp); //第m個(gè)學(xué)習(xí)樣本輸出層至隱層權(quán)閾值調(diào)整、修改 (8)
                  Delta_H_I(m,fp); //第m個(gè)學(xué)習(xí)樣本隱層至輸入層權(quán)閾值調(diào)整、修改 (9)
                  } //全部樣本訓(xùn)練完畢
                  sum_err=Err_Sum(); //全部樣本全局誤差計(jì)算 (10)
                  {
                  cout<<"第"<<study<<"次學(xué)習(xí)的均方誤差為"<<sum_err<<endl;
                  fprintf(fp,"第%d次學(xué)習(xí)的均方誤差為:%f\n",study,sum_err);
                  }
                  while (sum_err > Pre_error)    //or(study
                  { //N個(gè)樣本全局誤差小于預(yù)定誤差否? 小于則退出 (11)
                  cout<<"網(wǎng)絡(luò)已經(jīng)學(xué)習(xí)了"<<study<<"次,學(xué)習(xí)的均方誤差為"<<sum_err<<endl;
                  fprintf(fp,"網(wǎng)絡(luò)已經(jīng)學(xué)習(xí)了%d次,現(xiàn)在的全局誤差為:%f\n",study,total_err);
                  fclose(fp);
                  }
                  char s;
                  cout<<"請(qǐng)隨便輸入一個(gè)字符,按回車退出程序!\n";
                  cin>>s;
                  return 1;
                  }
                   

                  上一篇文章: Matlab C/C++函數(shù)庫介紹及應(yīng)用舉例 

                  下一篇文章: 人工智能軟件的編寫 


            【發(fā)表評(píng)論】【告訴好友】【打印此文】【關(guān)閉窗口】


                         最新5篇熱點(diǎn)文章

                        專家系統(tǒng)及其應(yīng)用[1044]

                        人工智能語言--PROLOG[541]

                        機(jī)器人控制原理[470]

                        坐標(biāo)變換[332]

                        10th Call for Papers:Joi…[127]



              最新5篇推薦文章

                        神經(jīng)網(wǎng)絡(luò)介紹—利用反向傳…[4725]

                        VC編程實(shí)現(xiàn)數(shù)字圖像的邊緣…[5259]

                        指紋識(shí)別心得(推薦)[3951]

                        遺傳算法合集[7688]

                        數(shù)字圖像處理編程入門[16425]



              相 關(guān) 文 章

                        人工神經(jīng)網(wǎng)絡(luò)技術(shù)入門講稿…[2589]

                        神經(jīng)網(wǎng)絡(luò)合集4[1795]

                        神經(jīng)網(wǎng)絡(luò)合集3[1812]

                        神經(jīng)網(wǎng)絡(luò)介紹—利用反向傳…[4725]

                        神經(jīng)網(wǎng)絡(luò)合集2[2130]





                    網(wǎng)友評(píng)論:(只顯示最新10條。評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),與本站立場(chǎng)無關(guān)!)

                        會(huì)員『auto』于2004-5-22 23:47:06發(fā)表評(píng)論:
                        評(píng)分:1分
                            這只能算是用c實(shí)現(xiàn)的,根本不是c++,不知道有沒有人用object-oriented的范式實(shí)現(xiàn)過?


                        會(huì)員『遠(yuǎn)端』于2004-4-11 17:14:07發(fā)表評(píng)論:
                        評(píng)分:3分
                            在哪下載該程序啊


                        查看關(guān)于此文章的所有評(píng)論





      | 戀雪首頁 | 軟件開發(fā) | 網(wǎng)站制作 | 友情鏈接 | 關(guān)于我們 | 
      版權(quán)所有 Copyright &copy; 中國(guó)人工智能網(wǎng)        維護(hù):Fish
         頁面執(zhí)行時(shí)間:125.00毫秒

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频一区| 一区二区三区四区精品在线视频 | 日韩电影免费在线| 欧美mv和日韩mv的网站| 在线中文字幕一区二区| 国产自产高清不卡| 天堂va蜜桃一区二区三区漫画版| 亚洲国产精品t66y| 日韩欧美中文字幕制服| 在线这里只有精品| 菠萝蜜视频在线观看一区| 裸体在线国模精品偷拍| 亚洲一区二区视频| 国产精品国产三级国产普通话99| 日韩一级完整毛片| 欧美日韩综合一区| 91麻豆精东视频| 成人综合婷婷国产精品久久| 精品一区二区三区视频| 日韩中文字幕不卡| 亚洲一区在线视频| 亚洲三级电影全部在线观看高清| 久久视频一区二区| 精品国产百合女同互慰| 91精品国产乱码| 欧美天堂亚洲电影院在线播放| www..com久久爱| 国产一区二区三区免费播放 | 99国产精品国产精品毛片| 国精品**一区二区三区在线蜜桃| 日韩高清在线不卡| 亚洲v日本v欧美v久久精品| 亚洲精品一二三| 中文字幕亚洲综合久久菠萝蜜| 久久久久久久久蜜桃| 26uuu国产电影一区二区| 日韩精品中文字幕一区二区三区| 正在播放亚洲一区| 欧美日韩精品三区| 欧美午夜精品电影| 欧美日韩午夜影院| 5858s免费视频成人| 在线播放欧美女士性生活| 欧美男同性恋视频网站| 777亚洲妇女| 欧美一区二区精品| 日韩欧美一级二级三级久久久| 91精品国产综合久久精品麻豆| 欧美精品在线视频| 欧美一区二区免费视频| 日韩一区二区电影在线| 精品美女在线播放| 国产精品情趣视频| 亚洲精品国产一区二区精华液| 亚洲码国产岛国毛片在线| 亚洲影院久久精品| 日本不卡1234视频| 国内精品第一页| 成人av网站大全| 欧美曰成人黄网| 日韩视频在线永久播放| 久久久99精品免费观看| 国产精品国产精品国产专区不片| 亚洲色图另类专区| 丝袜亚洲另类欧美| 国产精品一区一区三区| 91丨porny丨蝌蚪视频| 欧美网站大全在线观看| 欧美大胆一级视频| 亚洲欧洲在线观看av| 香蕉乱码成人久久天堂爱免费| 免费成人在线观看视频| 国产高清精品久久久久| 91黄色免费版| 欧美成人精品二区三区99精品| 国产精品欧美综合在线| 亚洲成人久久影院| 国产精品一区二区在线看| 日本韩国精品一区二区在线观看| 欧美精品精品一区| 国产午夜精品一区二区三区四区| 亚洲日本成人在线观看| 蜜乳av一区二区三区| 暴力调教一区二区三区| 欧美疯狂做受xxxx富婆| 国产精品午夜久久| 视频一区视频二区中文字幕| 高清不卡一二三区| 欧美一区二区三区四区高清| 亚洲欧洲日韩av| 美腿丝袜在线亚洲一区 | 欧美日韩高清不卡| 国产午夜精品久久久久久免费视| 亚洲一区视频在线观看视频| 精品中文字幕一区二区| 色狠狠一区二区三区香蕉| 精品国产一区二区国模嫣然| 一区二区三区成人| 国产一区二区三区免费播放| 欧美日韩国产中文| 中文一区二区在线观看| 美日韩一区二区| 欧美性猛交xxxx黑人交| 国产精品毛片久久久久久| 麻豆视频观看网址久久| 欧美在线视频全部完| 中文字幕免费观看一区| 毛片一区二区三区| 欧美麻豆精品久久久久久| 国产精品第13页| 国产一区在线精品| 欧美一区二区三区视频免费| 亚洲午夜久久久久久久久电影院| 高清国产午夜精品久久久久久| 日韩区在线观看| 亚洲成av人片在线观看无码| 色综合中文字幕| 中文字幕在线不卡| 国产成人av在线影院| 精品91自产拍在线观看一区| 午夜精品久久久| 欧美亚洲一区二区三区四区| 亚洲激情五月婷婷| 成人app在线| 国产精品美女久久久久久久网站| 国产一区在线看| 久久亚洲二区三区| 国产在线视视频有精品| 精品福利在线导航| 久久99精品久久久久久久久久久久| 91精品国产综合久久婷婷香蕉| 五月婷婷综合激情| 欧美日韩成人激情| 婷婷中文字幕综合| 91精品免费在线| 免费观看一级特黄欧美大片| 日韩一区二区三区四区| 免费观看在线综合色| 欧美久久久久久蜜桃| 亚洲国产欧美在线| 欧美另类z0zxhd电影| 午夜在线电影亚洲一区| 色吊一区二区三区| 亚洲自拍偷拍综合| 日本韩国精品在线| 又紧又大又爽精品一区二区| 不卡电影一区二区三区| 欧美另类变人与禽xxxxx| 香蕉久久夜色精品国产使用方法| 欧美色区777第一页| 亚洲最新视频在线播放| 欧美性色综合网| 青青草原综合久久大伊人精品| 欧美日韩高清在线| 日韩综合在线视频| 欧美大片免费久久精品三p| 国产精品一区二区在线观看不卡| 久久久电影一区二区三区| 国产精品性做久久久久久| 国产欧美日本一区视频| 免费人成在线不卡| 国产女同性恋一区二区| 高清beeg欧美| 亚洲欧美一区二区三区久本道91 | 亚洲美腿欧美偷拍| 日本韩国精品在线| 午夜在线成人av| 日韩欧美在线网站| 高清久久久久久| 亚洲免费在线观看| 欧美午夜理伦三级在线观看| 日韩精品一二区| 久久综合国产精品| 不卡电影免费在线播放一区| 亚洲欧美国产三级| 在线成人av影院| 丁香另类激情小说| 亚洲女子a中天字幕| 欧美日韩国产另类不卡| 久久se精品一区二区| 亚洲精品视频在线| 日韩三级高清在线| www.一区二区| 婷婷六月综合亚洲| 最近日韩中文字幕| 91精品欧美久久久久久动漫| 国产高清无密码一区二区三区| 国产色婷婷亚洲99精品小说| 欧美裸体一区二区三区| 国产精品 欧美精品| 亚洲男人的天堂在线aⅴ视频| 欧美精品视频www在线观看| 成人高清视频在线| 亚洲国产一区在线观看| 久久久电影一区二区三区| 国产精品一级片| 午夜电影一区二区| 久久久激情视频| 欧美狂野另类xxxxoooo| 丁香五精品蜜臀久久久久99网站|