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

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

?? bpn.c

?? 經典的BP網絡C語言源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:

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 SetInput(NET* Net, REAL* Input)
{
  INT i;
   
  for (i=1; i<=Net->InputLayer->Units; i++) {
    Net->InputLayer->Output[i] = Input[i-1];
  }
}


void GetOutput(NET* Net, REAL* Output)
{
  INT i;
   
  for (i=1; i<=Net->OutputLayer->Units; i++) {
    Output[i-1] = Net->OutputLayer->Output[i];
  }
}


/******************************************************************************
            S U P P O R T   F O R   S T O P P E D   T R A I N I N G
 ******************************************************************************/


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];
      }
    }
  }
}


/******************************************************************************
                     P R O P A G A T I N G   S I G N A L S
 ******************************************************************************/


void PropagateLayer(NET* Net, LAYER* Lower, LAYER* Upper)
{
  INT  i,j;
  REAL Sum;

  for (i=1; i<=Upper->Units; i++) {
    Sum = 0;
    for (j=0; j<=Lower->Units; j++) {
      Sum += Upper->Weight[i][j] * Lower->Output[j];
    }
    Upper->Output[i] = 1 / (1 + exp(-Net->Gain * Sum));
  }
}


void PropagateNet(NET* Net)
{
  INT l;
   
  for (l=0; l<NUM_LAYERS-1; l++) {
    PropagateLayer(Net, Net->Layer[l], Net->Layer[l+1]);
  }
}


/******************************************************************************
                  B A C K P R O P A G A T I N G   E R R O R S
 ******************************************************************************/


void ComputeOutputError(NET* Net, REAL* Target)
{
  INT  i;
  REAL Out, Err;
   
  Net->Error = 0;
  for (i=1; i<=Net->OutputLayer->Units; i++) {
    Out = Net->OutputLayer->Output[i];
    Err = Target[i-1]-Out;
    Net->OutputLayer->Error[i] = Net->Gain * Out * (1-Out) * Err;
    Net->Error += 0.5 * sqr(Err);
  }
}


void BackpropagateLayer(NET* Net, LAYER* Upper, LAYER* Lower)
{
  INT  i,j;
  REAL Out, Err;
   
  for (i=1; i<=Lower->Units; i++) {
    Out = Lower->Output[i];
    Err = 0;
    for (j=1; j<=Upper->Units; j++) {
      Err += Upper->Weight[j][i] * Upper->Error[j];
    }
    Lower->Error[i] = Net->Gain * Out * (1-Out) * Err;
  }
}


void BackpropagateNet(NET* Net)
{
  INT l;
   
  for (l=NUM_LAYERS-1; l>1; l--) {
    BackpropagateLayer(Net, Net->Layer[l], Net->Layer[l-1]);
  }
}


void AdjustWeights(NET* Net)
{
  INT  l,i,j;
  REAL Out, Err, dWeight;
   
  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++) {
        Out = Net->Layer[l-1]->Output[j];
        Err = Net->Layer[l]->Error[i];
        dWeight = Net->Layer[l]->dWeight[i][j];
        Net->Layer[l]->Weight[i][j] += Net->Eta * Err * Out + Net->Alpha * dWeight;
        Net->Layer[l]->dWeight[i][j] = Net->Eta * Err * Out;
      }
    }
  }
}


/******************************************************************************
                      S I M U L A T I N G   T H E   N E T
 ******************************************************************************/


void SimulateNet(NET* Net, REAL* Input, REAL* Output, REAL* Target, BOOL Training)
{
  SetInput(Net, Input);
  PropagateNet(Net);
  GetOutput(Net, Output);
   
  ComputeOutputError(Net, Target);
  if (Training) {
    BackpropagateNet(Net);
    AdjustWeights(Net);
  }
}


void TrainNet(NET* Net, INT Epochs)
{
  INT  Year, n;
  REAL Output[M];

  for (n=0; n<Epochs*TRAIN_YEARS; n++) {
    Year = RandomEqualINT(TRAIN_LWB, TRAIN_UPB);
    SimulateNet(Net, &(Sunspots[Year-N]), Output, &(Sunspots[Year]), TRUE);
  }
}


void TestNet(NET* Net)
{
  INT  Year;
  REAL Output[M];

  TrainError = 0;
  for (Year=TRAIN_LWB; Year<=TRAIN_UPB; Year++) {
    SimulateNet(Net, &(Sunspots[Year-N]), Output, &(Sunspots[Year]), FALSE);
    TrainError += Net->Error;
  }
  TestError = 0;
  for (Year=TEST_LWB; Year<=TEST_UPB; Year++) {
    SimulateNet(Net, &(Sunspots[Year-N]), Output, &(Sunspots[Year]), FALSE);
    TestError += Net->Error;
  }
  fprintf(f, "\nNMSE is %0.3f on Training Set and %0.3f on Test Set",
             TrainError / TrainErrorPredictingMean,
             TestError / TestErrorPredictingMean);
}


void EvaluateNet(NET* Net)
{
  INT  Year;
  REAL Output [M];
  REAL Output_[M];

  fprintf(f, "\n\n\n");
  fprintf(f, "Year    Sunspots    Open-Loop Prediction    Closed-Loop Prediction\n");
  fprintf(f, "\n");
  for (Year=EVAL_LWB; Year<=EVAL_UPB; Year++) {
    SimulateNet(Net, &(Sunspots [Year-N]), Output,  &(Sunspots [Year]), FALSE);
    SimulateNet(Net, &(Sunspots_[Year-N]), Output_, &(Sunspots_[Year]), FALSE);
    Sunspots_[Year] = Output_[0];
    fprintf(f, "%d       %0.3f                   %0.3f                     %0.3f\n",
               FIRST_YEAR + Year,
               Sunspots[Year],
               Output [0],
               Output_[0]);
  }
}


/******************************************************************************
                                    M A I N
 ******************************************************************************/


void main()
{
  NET  Net;
  BOOL Stop;
  REAL MinTestError;

  InitializeRandoms();
  GenerateNetwork(&Net);
  RandomWeights(&Net);
  InitializeApplication(&Net);

  Stop = FALSE;
  MinTestError = MAX_REAL;
  do {
    TrainNet(&Net, 10);
    TestNet(&Net);
    if (TestError < MinTestError) {
      fprintf(f, " - saving Weights ...");
      MinTestError = TestError;
      SaveWeights(&Net);
    }
    else if (TestError > 1.2 * MinTestError) {
      fprintf(f, " - stopping Training and restoring Weights ...");
      Stop = TRUE;
      RestoreWeights(&Net);
    }
  } while (NOT Stop);

  TestNet(&Net);
  EvaluateNet(&Net);
   
  FinalizeApplication(&Net);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞电影网一区二区| 日韩电影一区二区三区四区| 日韩一区二区在线观看| 欧美人动与zoxxxx乱| 91国在线观看| 欧美日本国产视频| 91精品福利在线一区二区三区| 欧美日韩国产一级片| 欧美日韩国产一级片| 91精品国产麻豆国产自产在线 | 久久婷婷一区二区三区| 欧美大白屁股肥臀xxxxxx| 精品久久久久久久久久久院品网| 精品国产乱码久久久久久久久| 久久久久88色偷偷免费| 国产精品欧美经典| 亚洲精品网站在线观看| 亚洲成av人片www| 久久精品国产**网站演员| 国产一区二区女| 色www精品视频在线观看| 欧美日韩小视频| 久久综合九色综合久久久精品综合| 国产色91在线| 一区二区三区欧美亚洲| 麻豆精品一二三| 国产69精品久久久久毛片| 91国产免费看| 久久久精品黄色| 亚洲一区二区精品3399| 麻豆久久久久久久| 91啪亚洲精品| 日韩一区二区三区电影| 中文字幕一区二区三区四区| 日韩在线一区二区三区| 风间由美一区二区av101| 欧美美女直播网站| 国产欧美一区二区精品性色| 亚洲国产精品尤物yw在线观看| 精品中文字幕一区二区小辣椒 | 欧日韩精品视频| 久久久久久免费网| 性久久久久久久| 成人性色生活片免费看爆迷你毛片| 欧美日本一道本在线视频| 国产精品国产三级国产aⅴ入口| 午夜精品福利在线| 91污片在线观看| 国产日韩欧美精品电影三级在线| 亚洲国产精品一区二区久久 | 亚洲一级二级在线| 福利一区福利二区| 欧美不卡视频一区| 午夜精品在线视频一区| 91欧美激情一区二区三区成人| 精品盗摄一区二区三区| 首页国产丝袜综合| 欧美在线综合视频| 综合在线观看色| 成人v精品蜜桃久久一区| 日韩亚洲电影在线| 亚洲va在线va天堂| 91福利小视频| 亚洲综合在线第一页| av激情成人网| 国产精品久久久久久一区二区三区 | 欧美大片在线观看| 日本aⅴ免费视频一区二区三区| 在线一区二区观看| 成人欧美一区二区三区| av中文字幕一区| 国产精品国产三级国产aⅴ入口 | 亚洲免费资源在线播放| av高清不卡在线| 欧美国产日本韩| 国产福利一区二区三区视频在线 | 亚洲va欧美va天堂v国产综合| 色综合av在线| 亚洲一区二区成人在线观看| 在线欧美一区二区| 亚洲成av人片一区二区| 欧美美女一区二区| 精品一区二区精品| 国产亚洲一二三区| 成人夜色视频网站在线观看| 国产精品久久影院| 欧美伊人久久久久久午夜久久久久| 夜色激情一区二区| 日韩午夜激情免费电影| 国产精品1024| 1024亚洲合集| 欧美日韩国产精选| 国产精品一区二区在线看| 国产亚洲精品免费| 在线视频中文字幕一区二区| 五月天久久比比资源色| 精品福利av导航| 99久久精品一区| 丝袜亚洲另类丝袜在线| 欧美videos大乳护士334| www.性欧美| 偷窥国产亚洲免费视频| 久久久久久久精| 在线日韩av片| 国产伦精品一区二区三区视频青涩 | 亚洲女与黑人做爰| 欧美一级二级在线观看| 成人一区二区三区视频| 午夜欧美在线一二页| 欧美精品一区二区蜜臀亚洲| 91在线视频播放| 另类综合日韩欧美亚洲| 最新欧美精品一区二区三区| 欧美一区二区三区四区久久| 成人高清在线视频| 蜜乳av一区二区三区| 亚洲乱码国产乱码精品精98午夜| 日韩精品在线一区二区| 91久久精品国产91性色tv| 国产一级精品在线| 午夜国产精品一区| 中文字幕一区二区三区不卡在线| 欧美一级搡bbbb搡bbbb| 9久草视频在线视频精品| 国产专区综合网| 五月天视频一区| 一区二区三区欧美久久| 欧美激情一区三区| 精品国产一区二区三区久久影院| 色94色欧美sute亚洲线路一久| 国产精品一二二区| 久久成人免费日本黄色| 亚洲福利一区二区| 亚洲欧美日韩中文字幕一区二区三区| 精品国产青草久久久久福利| 7777精品伊人久久久大香线蕉的| 不卡一区二区三区四区| 国产精品亚洲一区二区三区在线 | 亚洲成人av在线电影| 1024成人网| 中文字幕在线不卡一区二区三区 | 一区二区久久久| 国产精品―色哟哟| 欧美激情一区二区| 国产区在线观看成人精品 | 不卡电影一区二区三区| 国产精选一区二区三区| 精品写真视频在线观看| 日韩av不卡在线观看| 日韩二区三区在线观看| 午夜国产精品影院在线观看| 午夜视频一区二区| 亚洲午夜国产一区99re久久| 一区二区三区免费看视频| 亚洲欧美日韩中文播放| 尤物在线观看一区| 亚洲卡通欧美制服中文| 一区二区三区在线观看动漫| 亚洲综合成人网| 午夜电影久久久| 麻豆成人久久精品二区三区小说| 免费观看成人av| 国产精品自拍网站| 99精品视频在线免费观看| 色吊一区二区三区 | 国产一区二区久久| 成人黄页在线观看| 日本久久一区二区三区| 欧美午夜精品一区| 日韩一区二区在线看| 26uuu国产一区二区三区| 欧美极品xxx| 樱花影视一区二区| 蜜臀av一级做a爰片久久| 国产精品自拍毛片| 91成人看片片| 91精品国产综合久久久久久久久久| 欧美一级午夜免费电影| 欧美国产精品一区| 亚洲中国最大av网站| 久久99精品久久久久久动态图| 成人免费看的视频| 欧美三级电影一区| 欧美精品一区二区三区高清aⅴ | 精品美女在线观看| 亚洲欧洲av一区二区三区久久| 一区二区三区不卡视频在线观看| 麻豆精品在线看| 91丨国产丨九色丨pron| 91精品国产aⅴ一区二区| 国产精品久久久久影院亚瑟| 亚洲大片免费看| 国产麻豆日韩欧美久久| 欧美天天综合网| 中文一区一区三区高中清不卡| 亚洲国产精品一区二区www在线| 国产九色精品成人porny| 欧美午夜精品理论片a级按摩| 久久久亚洲高清| 日韩在线一区二区三区|