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

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

?? main.cpp

?? 神經網絡BP算法,實現數字識別 VC++代碼實現
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                                                  { "OOOOO",    
                                                    "O    ",    
                                                    "O    ",    
                                                    "O    ",    
                                                    "    O",    
                                                    "O  O",    
                                                    " OOO "  },    
  
                                                  { " OOO ",    
                                                    "   O",    
                                                    "O   ",    
                                                    "OOOO ",    
                                                    "O  O",    
                                                    "   O",    
                                                    " O O "  },    
  
                                                  { "O O O",    
                                                    "    O",    
                                                    "    O",    
                                                    "  O  ",    
                                                    "  O  ",    
                                                    "  O  ",    
                                                    "O    "  },    
  
                                                  { " OOO ",    
                                                    "   O",    
                                                    "O  O",    
                                                    " OOO ",    
                                                    "O  O",    
                                                    "O   ",    
                                                    " OOO "  },    
  
                                                  { "O  O ",    
                                                    "    O",    
                                                    "O   O",    
                                                    "  OOO",    
                                                    "     ",    
                                                    "    O",    
                                                    "O OO "  } };    
/******************************************************************************   
//導師信號,按從上到下的順序分別表示0~9                    
******************************************************************************/    
  
REAL                  Target[NUM_DATA][M] =                       
                                  { {HI, LO, LO, LO, LO, LO, LO, LO, LO, LO},    
                                    {LO, HI, LO, LO, LO, LO, LO, LO, LO, LO},    
                                    {LO, LO, HI, LO, LO, LO, LO, LO, LO, LO},    
                                    {LO, LO, LO, HI, LO, LO, LO, LO, LO, LO},    
                                    {LO, LO, LO, LO, HI, LO, LO, LO, LO, LO},    
                                    {LO, LO, LO, LO, LO, HI, LO, LO, LO, LO},    
                                    {LO, LO, LO, LO, LO, LO, HI, LO, LO, LO},    
                                    {LO, LO, LO, LO, LO, LO, LO, HI, LO, LO},    
                                    {LO, LO, LO, LO, LO, LO, LO, LO, HI, LO},    
                                    {LO, LO, LO, LO, LO, LO, LO, LO, LO, HI}  };    
/******************************************************************************   
                                    主程序   
******************************************************************************/    
void main()    
{    
  INT  m,n,count;//循環變量    
  NET  Net;//網絡變量聲明    
  BOOL Stop;//學習是否結束的控制變量    
  
  REAL Error;//記錄當前所有樣本的最大誤差    
  InitializeRandoms();//生成隨機數    
  GenerateNetwork(&Net);//創建網絡并初始化網絡,分配空間    
  RandomWeights(&Net);//初始化網絡聯接權    
  InitializeApplication(&Net);//初始化輸入層,將學習樣本轉換成輸入模式    
     
  count=0;//顯示學習進度的控制變量    
  do {    
    Error = 0;//誤差    
    Stop = TRUE;//初始化    
    for (n=0; n<NUM_DATA; n++) {    //對每個模式計算模擬神經網絡誤差    
      SimulateNet(&Net, Input[n],Target[n], FALSE, FALSE);  //計算模擬神經網絡誤差    
      Error = MAX(Error, Net.Error);//巧妙的做法,獲取結構的值,獲取誤差最大值    
      Stop = Stop AND (Net.Error < Net.Epsilon);    
      count++;    
    }    
    Error = MAX(Error, Net.Epsilon);//作用:防止溢出,保證到100%的時候停止訓練,獲取誤差最大值    
    if (count%300==0){    
        printf("Training %0.0f%% completed \n", (Net.Epsilon / Error) * 100);    
    }//只能做一個參考,并非單調上升的值    
    if (NOT Stop) {    
        for (m=0; m<10*NUM_DATA; m++) { //對各模式進行訓練    
        n = RandomEqualINT(0,NUM_DATA-1); //隨機選擇訓練模式       
        SimulateNet(&Net, Input[n],Target[n], TRUE,FALSE );    
      }    
    }       
  } while (NOT Stop);    
  printf("BP神經網絡學習結束!\n 請按一鍵繼續工作:讀入測試數據進行識別!\n");    
  getch();    
  SaveWeights(&Net);//學習結束后保存寶貴的聯接權    
  //網絡開始工作     
  Initializetest();//初始化測試樣本,將其轉化成輸入模式    
     
  for (n=0; n<NUM_DATA; n++) {    
    SimulateNet(&Net, Inputtest[n],Target[n], FALSE, TRUE);       
  }    
  FinalizeApplication(&Net);//關閉文件    
  
  printf("BP神經網絡完成了識別任務!\n請在result.txt文件中檢查識別結果。\n");    
  printf("請按任意鍵以結束程序!\n");    
  //getch();    
  getch();    
}    
  
/******************************************************************************   
        產生隨機數   
******************************************************************************/    
  
//設置偽隨機數種子    
void InitializeRandoms()     
{    
  srand(4711);    
}    
//產生一個LOW - TOP之間的偽隨機整數    
INT RandomEqualINT(INT Low, INT High)     
{    
  return rand() % (High-Low+1) + Low;    
}         
//產生一個LOW - TOP之間的偽隨機浮點數    
REAL RandomEqualREAL(REAL Low, REAL High)    
{    
  return ((REAL) rand() / RAND_MAX) * (High-Low) + Low;    
}    
/******************************************************************************   
  //關閉文件            
******************************************************************************/    
void FinalizeApplication(NET* Net)    
{    
  fclose(f);    
}         
/******************************************************************************   
//隨機生成聯接權              
******************************************************************************/    
void RandomWeights(NET* Net)     
{    
  INT l,i,j;    
     
  for (l=1; l<NUM_LAYERS; l++) {  //每層    
    for (i=1; i<=Net->Layer[l]->Units; i++) {    
      for (j=0; j<=Net->Layer[l-1]->Units; j++) {    
        Net->Layer[l]->Weight[i][j] = RandomEqualREAL(-0.5, 0.5);//隨機值    
      }    
    }    
  }    
}    
/******************************************************************************   
//保存連接權,防止丟失寶貴的聯接權                                      
******************************************************************************/    
void SaveWeights(NET* Net)    
{    
  INT l,i,j;    
  
  for (l=1; l<NUM_LAYERS; l++) {    
    for (i=1; i<=Net->Layer[l]->Units; i++) {    
      for (j=0; j<=Net->Layer[l-1]->Units; j++) {    
        Net->Layer[l]->WeightSave[i][j] = Net->Layer[l]->Weight[i][j];    
      }    
    }    
  }    
}    
/******************************************************************************   
//恢復連接權,以便需要的時候可以重新調用,重組網絡                
******************************************************************************/    
void RestoreWeights(NET* Net)                   
{    
  INT l,i,j;    
  
  for (l=1; l<NUM_LAYERS; l++) {    
    for (i=1; i<=Net->Layer[l]->Units; i++) {    
      for (j=0; j<=Net->Layer[l-1]->Units; j++) {    
        Net->Layer[l]->Weight[i][j] = Net->Layer[l]->WeightSave[i][j];       
      }    
    }    
  }    
}    
/******************************************************************************   
//創建網絡,為網絡分配空間                          
******************************************************************************/    
void GenerateNetwork(NET* Net)    
{    
  INT l,i;    
  
  Net->Layer = (LAYER**) calloc(NUM_LAYERS, sizeof(LAYER*));    
     
  for (l=0; l<NUM_LAYERS; l++) {    
    Net->Layer[l] = (LAYER*) malloc(sizeof(LAYER));    
         
    Net->Layer[l]->Units      = Units[l];    
    Net->Layer[l]->Output    = (REAL*)  calloc(Units[l]+1, sizeof(REAL));    
    Net->Layer[l]->Activation = (REAL*)  calloc(Units[l]+1, sizeof(REAL));    
    Net->Layer[l]->Error      = (REAL*)  calloc(Units[l]+1, sizeof(REAL));    
    Net->Layer[l]->Weight    = (REAL**) calloc(Units[l]+1, sizeof(REAL*));    
    Net->Layer[l]->WeightSave = (REAL**) calloc(Units[l]+1, sizeof(REAL*));    
    Net->Layer[l]->dWeight    = (REAL**) calloc(Units[l]+1, sizeof(REAL*));    
    Net->Layer[l]->Output[0]  = BIAS;    
         
    if (l != 0) {    
      for (i=1; i<=Units[l]; i++) {    
        Net->Layer[l]->Weight[i]    = (REAL*) calloc(Units[l-1]+1, sizeof(REAL));    
        Net->Layer[l]->WeightSave[i] = (REAL*) calloc(Units[l-1]+1, sizeof(REAL));    
        Net->Layer[l]->dWeight[i]    = (REAL*) calloc(Units[l-1]+1, sizeof(REAL));    
      }    
    }    
  }    
  Net->InputLayer  = Net->Layer[0];//為輸入層分配指針    
  Net->OutputLayer = Net->Layer[NUM_LAYERS-1];//為輸出層分配指針    
  Net->Alpha      = 0.8;//沖量參數    
  Net->Eta        = 0.5;//學習率    
  Net->Epsilon    =0.005;//控制精度    
}    
/******************************************************************************   
將輸入樣本轉換成為輸入模式,并創建一個文件以保存顯示結果   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美首页| 欧美性感一类影片在线播放| 日韩高清中文字幕一区| 亚洲成a人v欧美综合天堂下载| 亚洲精品写真福利| 一区二区三区久久| 亚洲国产精品自拍| 天天色图综合网| 老汉av免费一区二区三区| 精东粉嫩av免费一区二区三区| 久久爱另类一区二区小说| 国产麻豆精品视频| 成人黄色电影在线| 日本道免费精品一区二区三区| 欧美色网一区二区| 日韩一区二区三区免费看| 久久久久成人黄色影片| 国产精品亲子伦对白| 亚洲免费观看在线视频| 亚洲国产精品久久久男人的天堂 | 国产露脸91国语对白| 国产剧情一区在线| 99国产欧美久久久精品| 精品视频一区二区不卡| 精品免费国产一区二区三区四区| 久久精品免费在线观看| 亚洲免费在线看| 免费三级欧美电影| 99re热这里只有精品免费视频| 欧美日韩国产高清一区二区 | 一区二区高清视频在线观看| 五月激情综合网| 成人精品在线视频观看| 欧美日韩一区不卡| 日本一区二区三区在线不卡| 亚洲男同性恋视频| 国模无码大尺度一区二区三区| 99精品热视频| 久久日韩粉嫩一区二区三区| 亚洲一区在线观看网站| 国产成人av自拍| 91精品国产综合久久精品麻豆| 国产欧美日韩精品a在线观看| 亚洲制服丝袜在线| 成人在线综合网| 欧美一二三在线| 一区二区三区久久| 国产成人av电影| 精品美女在线观看| 亚洲成人综合在线| 91丨国产丨九色丨pron| 国产亚洲欧美色| 视频一区二区欧美| 91电影在线观看| 国产精品久久久久久一区二区三区 | 色一情一乱一乱一91av| 26uuu国产电影一区二区| 一级中文字幕一区二区| av电影天堂一区二区在线观看| 精品毛片乱码1区2区3区| 视频一区视频二区中文字幕| 欧美在线一区二区| 亚洲另类在线一区| 色94色欧美sute亚洲线路一ni| 中文欧美字幕免费| 国产91在线观看丝袜| 国产网红主播福利一区二区| 麻豆国产精品官网| 日韩欧美国产1| 久久精品国产亚洲aⅴ| 欧美va亚洲va| 精品一区二区三区视频在线观看| 日韩久久免费av| 久久精品国产色蜜蜜麻豆| 国产精品天干天干在线综合| 国产一区二区美女诱惑| 欧美xxxxx牲另类人与| 美女一区二区视频| 欧美电影精品一区二区| 九九视频精品免费| 久久综合丝袜日本网| 国产精品亚洲视频| 国产精品免费人成网站| 99re视频精品| 午夜精品久久久久影视| 欧美一区二区在线播放| 久久激情五月激情| 国产视频一区二区在线| 成人黄动漫网站免费app| 国产精品高清亚洲| 欧美又粗又大又爽| 奇米亚洲午夜久久精品| 精品三级在线看| 风间由美中文字幕在线看视频国产欧美| 欧美国产成人精品| 91福利在线播放| 蜜臀精品久久久久久蜜臀| 久久伊人蜜桃av一区二区| 北岛玲一区二区三区四区| 亚洲人精品午夜| 91精品国产综合久久久久久漫画| 理论电影国产精品| 中文字幕一区二区三区四区不卡 | 久久青草欧美一区二区三区| 国产高清精品网站| 亚洲图片激情小说| 91精品一区二区三区久久久久久| 久久精品国产一区二区三区免费看| 久久久久久久久久久99999| 成人免费观看av| 水蜜桃久久夜色精品一区的特点 | 极品美女销魂一区二区三区免费| 久久蜜桃一区二区| 91久久精品一区二区三| 麻豆91免费看| 亚洲人成网站色在线观看| 欧美一二三区精品| 99久久精品国产导航| 免费人成精品欧美精品| 中文字幕永久在线不卡| 日韩午夜精品电影| 色综合久久综合| 国产精品影视在线观看| 亚洲一区自拍偷拍| 国产精品私人影院| 欧美成人国产一区二区| 欧美在线观看一区| 国产成人8x视频一区二区| 免费在线观看日韩欧美| 亚洲免费视频成人| 亚洲国产精品v| 精品国产乱码久久久久久1区2区| 一本色道久久综合亚洲91| 成人一二三区视频| 久久精品久久综合| 日本一区中文字幕| 亚洲国产精品久久久男人的天堂 | 日韩欧美中文一区| 色88888久久久久久影院野外| 国内精品久久久久影院薰衣草 | 色综合久久综合网97色综合 | 亚洲第一福利一区| 亚洲精品视频自拍| **网站欧美大片在线观看| 国产校园另类小说区| 精品国产三级a在线观看| 91精品国产综合久久香蕉麻豆| 日本韩国欧美三级| 91在线码无精品| 91视视频在线观看入口直接观看www| 国产成人亚洲综合色影视| 国产麻豆成人精品| 国产成人精品亚洲日本在线桃色| 加勒比av一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99riav久久精品riav| 成人小视频在线| 99re视频这里只有精品| 91麻豆6部合集magnet| 一本色道久久综合亚洲91| 99久久777色| 欧美午夜电影网| 欧美亚洲一区二区三区四区| 欧美日韩www| 欧美一级日韩不卡播放免费| 国产精品久久免费看| 亚洲欧洲美洲综合色网| 亚洲色图.com| 亚洲大型综合色站| 久久99精品久久久久久动态图| 极品少妇一区二区| 成人高清av在线| 色视频欧美一区二区三区| 欧美日韩成人在线| 精品国产乱码久久久久久久| 中日韩av电影| 亚洲五月六月丁香激情| 麻豆久久久久久久| 国产成人午夜片在线观看高清观看 | 亚洲电影在线播放| 精品一区二区三区在线播放视频| 国产精品亚洲午夜一区二区三区| 成人蜜臀av电影| 欧美高清视频在线高清观看mv色露露十八| 欧美系列日韩一区| 国产无人区一区二区三区| 亚洲激情第一区| 国产综合久久久久久久久久久久| 成人免费观看av| 9191国产精品| 中文av一区特黄| 日本女人一区二区三区| 成人免费高清视频| 91精品国产91热久久久做人人| 国产亚洲一本大道中文在线| 亚洲mv在线观看| 粉嫩一区二区三区性色av| 欧美日韩一区二区三区在线| 中文字幕av免费专区久久| 久久电影网站中文字幕 |