精華區beta CSSE 關於我們 聯絡資訊
※ 引述《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
jokker:真清楚!! 09/13 13:19