推 jokker:真清楚!! 09/13 13:19
※ 引述《haryewkun (Har)》之銘言:
: 我有回看過 m大的原文,我所理解的狀況是這樣的:他需要寫一個GP的
: 程式,而這個程式在寫完後,會開始做training。他的問題在,他可以
: 用五分鐘寫完程式,但是training時間會變長。他也可以用更多時間去
: 優化程式,這樣training時間就會變短。
上面的定義,我跟你理解的一樣,所以這是沒問題的。
: 我不確定我是否誤解了m 大的狀況,但是我對這個問題的理解,是怎樣
: 在開發時間(寫程式)和training的時間之間保持平衡(最優化)。
: 所以我的重點,不是放在“程式的最優化”,而是放在“開發時間的最
: 優化”。這也是為什麼用兩套程式的原因。
: 也就是說,要得到結果,
: 要花費的時間 = 開發時間(寫程式) + 編譯時間(Training)
應該這麼說吧,你認為他所談到的training是什麼呢?
是指程式的編譯時間嗎?
我只是就我的理解來講,不一定和原po想說的一樣,
在演算法裡面有種對training的說法,
"一開始先輸入資料,產生輸出資料後,所得到的輸出資料會再成為下一次的輸入"
所以在程式一執行起來後,可能程式只會丟入一次資料,
可是資料就在裡面不停的流進流出,
直到穩定(看程式自己定義什麼狀況可以稱之為已經training 完成),
除此之外,通常還會有一些參數是研究者不清楚、但想要測試得知的,
所以第一次的train work不理想的話,就再調整參數,
讓程式再度重新training一次,如此反覆。
(如果硬要舉例training一次的話,大概就有點像你講的,
在開發程式的時間和執行的時間兩者取最佳化,
因為這種動作是不可能一次就找到解答的,
所以要改很多次程式、執行很多次後,才會知道答案,
這就是training的意涵了)
由於一次的training中,包含很多次來回的資料流進流出,一直重複做同樣的動作,
所以training time才會影響重大,如果程式設計理想的話,
改進training的架構,等於對每次資料流進流出做改進了,
自然整個training time就會大幅縮減了。
這就是我為什麼會說優化程式會比較有益處,
不過當然也得看使用的人未來使用的頻率,
如果只是想能跑出結果就好,那讓程式自己在那邊train,
自己去閒著或忙其他的事也無不可呀。
畢竟在電腦前面等training結束,是一件很痛苦的事....
一個過來人的感想...XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.86.128.60