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

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

?? bpn.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一区二区三区免费野_久草精品视频
亚洲黄一区二区三区| 欧美在线一区二区| 日本久久电影网| 日韩欧美精品在线视频| 中文字幕亚洲欧美在线不卡| 石原莉奈在线亚洲三区| 91麻豆免费看| 国产欧美一区二区三区沐欲| 日韩电影免费在线| 91极品视觉盛宴| 欧美国产精品专区| 黄色精品一二区| 欧美精品 国产精品| 国产精品久久午夜夜伦鲁鲁| 国产精品一区二区黑丝| 91精品国产一区二区三区蜜臀| 亚洲免费在线电影| 成人午夜又粗又硬又大| 精品国产123| 秋霞电影网一区二区| 在线免费一区三区| 亚洲精品国产精华液| 国产精品一区在线| 久久婷婷色综合| 久久69国产一区二区蜜臀| 欧美久久高跟鞋激| 亚洲成av人片一区二区三区| 91美女片黄在线| 综合久久久久久| 波多野洁衣一区| 国产精品传媒视频| 97se亚洲国产综合自在线| 国产精品久久久久永久免费观看 | 99国产精品久久久久久久久久久 | 国产精品三级在线观看| 国产高清在线观看免费不卡| 日韩三区在线观看| 久久精品国产**网站演员| 日韩欧美一级特黄在线播放| 日韩av在线播放中文字幕| 666欧美在线视频| 天天色天天操综合| 日韩欧美一级精品久久| 国产综合色精品一区二区三区| 欧美成人三级在线| 国产精品资源网站| 国产精品女人毛片| 91国产免费观看| 三级精品在线观看| 久久综合久久鬼色中文字| 国产成人8x视频一区二区| 国产精品美女久久久久高潮| 99re这里都是精品| 一区二区在线观看视频在线观看| 欧美视频一区在线| 国内精品伊人久久久久av影院 | 麻豆成人久久精品二区三区红 | 国产乱子伦一区二区三区国色天香| 亚洲综合视频在线| 这里只有精品免费| 国产麻豆一精品一av一免费| 亚洲欧洲日韩在线| 欧美精三区欧美精三区 | 亚洲综合色丁香婷婷六月图片| 欧美日韩一区高清| 国产一区二区三区四区五区入口| 国产精品色婷婷久久58| 欧美日韩一级视频| 国产成人综合在线播放| 亚洲女同ⅹxx女同tv| 欧美一区二区国产| av一本久道久久综合久久鬼色| 亚洲欧美日韩在线| 精品美女在线观看| 在线精品视频小说1| 麻豆成人免费电影| 亚洲永久免费视频| 久久九九影视网| 欧美久久久影院| 成人手机电影网| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品无码一区二区三区| 欧美色图免费看| 国产91丝袜在线18| 日本成人在线电影网| 亚洲免费观看高清完整版在线观看熊| 538prom精品视频线放| av资源网一区| 国产美女av一区二区三区| 日日摸夜夜添夜夜添国产精品| 亚洲四区在线观看| 久久久综合视频| 欧美一区二区三区四区在线观看| 色综合天天在线| 国产mv日韩mv欧美| 国内精品免费**视频| 午夜精品久久久久影视| 亚洲人妖av一区二区| 久久久国产午夜精品| 91精品国产综合久久久蜜臀图片| 色噜噜狠狠成人网p站| www..com久久爱| 国产一区视频在线看| 麻豆精品国产传媒mv男同| 日韩二区在线观看| 亚洲一级二级在线| 一区二区在线电影| 极品美女销魂一区二区三区 | 日韩欧美成人激情| 日韩视频免费观看高清完整版 | 亚洲午夜国产一区99re久久| 亚洲欧美一区二区三区极速播放| 国产精品久久久久一区二区三区| 国产午夜精品一区二区| 久久精品人人做人人综合| 精品盗摄一区二区三区| 精品少妇一区二区三区视频免付费 | 国产网站一区二区| 国产亚洲精品超碰| 国产精品久久久一区麻豆最新章节| 国产欧美一区二区精品仙草咪| 国产欧美精品一区二区色综合朱莉| 精品国产乱码久久久久久免费| 精品少妇一区二区三区视频免付费 | 国产成人av电影免费在线观看| 国产成人精品午夜视频免费| 国产一区二区三区av电影| 国产在线麻豆精品观看| 成人一道本在线| 91网站视频在线观看| 欧美在线免费观看视频| 91精品在线麻豆| 精品国产乱码91久久久久久网站| 精品国精品国产| 国产欧美日韩卡一| 亚洲欧洲中文日韩久久av乱码| 亚洲午夜在线电影| 日韩经典中文字幕一区| 久草精品在线观看| 99久久免费精品| 欧美日韩国产免费一区二区| 日韩精品中午字幕| 中文字幕av不卡| 亚洲一区自拍偷拍| 麻豆91精品视频| a美女胸又www黄视频久久| 欧美日韩日日夜夜| 国产三级久久久| 亚洲激情网站免费观看| 美国十次综合导航| 91丝袜美腿高跟国产极品老师| 欧美视频在线观看一区二区| 精品裸体舞一区二区三区| 国产精品婷婷午夜在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲欧洲日产国产综合网| 香蕉乱码成人久久天堂爱免费| 国产美女精品在线| 欧美亚洲一区三区| 久久久精品欧美丰满| 亚洲国产精品一区二区www | 99re热这里只有精品免费视频 | 国产日韩欧美一区二区三区综合| 亚洲三级电影网站| 黑人精品欧美一区二区蜜桃| 91美女在线看| 国产欧美一区二区精品婷婷| 亚洲成人激情自拍| 91麻豆精品在线观看| 久久久久国产精品免费免费搜索 | 中文字幕五月欧美| 青青草国产成人99久久| 色网站国产精品| 久久精品网站免费观看| 蜜臀av国产精品久久久久| 91麻豆蜜桃一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 视频在线观看一区二区三区| 不卡一卡二卡三乱码免费网站| 日韩女同互慰一区二区| 亚洲国产欧美在线人成| av不卡免费电影| 欧美激情一区三区| 国产毛片一区二区| 日韩美女主播在线视频一区二区三区| 一区二区三区四区在线免费观看| 成人免费毛片片v| 久久久美女毛片| 久久精品国产亚洲a| 正在播放一区二区| 水蜜桃久久夜色精品一区的特点| 在线精品视频一区二区三四| 亚洲天堂成人在线观看| 成人黄动漫网站免费app| 2017欧美狠狠色| 国内外精品视频| 久久久精品一品道一区| 国产久卡久卡久卡久卡视频精品| 日韩精品一区二区三区在线播放 | 国产69精品久久久久777|