線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1250
推到 Plurk!
推到 Facebook!

使用BP網路 跑curve fitting 會出現overflow問題

尚未結案
emptiness
一般會員


發表:2
回覆:0
積分:0
註冊:2007-11-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-13 00:37:31 IP:140.124.xxx.xxx 訂閱

[code delphi]


void __fastcall TForm1::Button1Click(TObject *Sender) //以下是訓練網路鈕(使用315組資料做訓練)
{


for(k=0;k<3000;k ) //訓練次數
{ CGauge1->MaxValue = 1000;
CGauge1->MinValue = 0;
CGauge1->Progress = k 1;


e=0;
for(int i=0;i {
net3=0;
for(int j=0;j {

net[j]=w1[0][j]*p1[i] b[j]; //輸入值在隱藏層轉換
y[j]=1/(1 exp(-net[j]));

}
for(int j=0;j {
net3 =w2[j][1]*y[j];
}
y3=net3 b1; //輸出值

a3=y3*(1-y3)*(p2[i]-y3); //輸出層差距量
for(int j=0;j {
a[j]=w2[j][1]*a3*y[j]*(1-y[j]); //隱藏層差距量

///更新輸出層權重
w2[j][1]=w2[j][1] lr*a3*y[j] w10[j][1]*momentum;
w10[j][1]=lr*a3*y[j] w10[j][1]*momentum;
//更新隱藏層權重層
w1[0][j]=w1[0][j] lr*a[j]*p1[i] w11[0][j]*momentum;
w11[0][j]=lr*a[j]*p1[i] w11[0][j]*momentum;
//更新隱藏層偏權值
b[j]=b[j] lr*a[j] b_1[j]*momentum;
b_1[j]=lr*a[j] b_1[j]*momentum;

}
//更新輸出層權重
b1=b1 lr*a3 b4*momentum;

b4=lr*a3 b4*momentum;


ft=y3-p2[i];
e=e pow(ft,2); //SSE

}
Series3->AddXY(k,e/315,"",clRed); //SHOW出X軸為訓練次數.Y軸為MSE
Application->ProcessMessages();

}





}
[/code]
請教各位大大,我在使用BP網路時,輸出層使用purelin函數,隱藏層使用logsig函數,在跑的時候,會出現overflow,在debug時候,發現幾乎每個值都爆掉(E 100..),思考很久,還是不了解為何,希望各位大大能幫忙看一下,感激不盡。以下還有附我的原始檔案

附加檔案:47600e4baafc3_BP2.rar
系統時間:2024-04-27 4:20:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!