作者ankasc (初夏。)
看板CSSE
标题Re: 程式效率
时间Wed Sep 13 13:09:58 2006
※ 引述《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
1F:推 jokker:真清楚!! 09/13 13:19