作者art1 (人,原来不是人)
看板DataScience
标题[问题] 需要每一轮(epoch)都喂入整个资料集吗?
时间Tue Nov 10 18:33:52 2020
譬如资料集超大,上千万笔资料,跑一轮(epoch)需要好几天或更久,如果让每一轮没跑
过整个资料集,这样子训练的效果是不是会比较差?
主因目前都是在 colab 训练,一轮的时间太久就会被突然中断导致前面花费的时间都
白费了,虽然是可以改成依照喂入资料的次数来储存训练结果,但看线上说明是说这样
训练的话,若次数没对齐一轮需要经过的次数的话,会导致评估分数变得不准确
我试验过照次数储存的评估结果,刻意中断後重新训练,跑出来的评估结果在
Tensorboard 中必须选取 relative 才能让评估结果看起来是连续的,如果选择 steps
评估结果就会跳到最左边显示
所以想要了解资料集很大的情况下,每一轮有必要把整个资料集跑过一遍吗?
--
「看在上帝的份上,我们不能当着孩子的面枪杀他的父亲!」
「那我们就连孩子一起干掉!」
「第一枪打中的是那个天真的孩子,第二枪是抱着孩子的母亲。第三枪
停顿了三秒,当难以致信的父亲擦拭着脸上爱子的脑浆从震惊中醒转
过来,慢慢的转头看向停车的地方,分辨出是谁在攻击他後,第三颗
子弹才将他的脑壳打飞。」 ─摘自〈狼群〉
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.173.41.191 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1605004435.A.2AF.html
1F:推 TuCH: train 无所谓 validation 最好是一致 11/11 08:59
2F:推 Overfitting: colab可以设定每个epoch存档 包含optimizer状态都存 11/11 09:04
3F:→ Overfitting: 这样比较好继续接着训练 11/11 09:04
4F:推 wang19980531: 把训练的参数存起来就好了呀 11/13 01:03
5F:→ art1: 储存模型是每一轮结束的时候,colab 没办法保证每一轮都能正 11/13 05:24
6F:→ art1: 常结束,若每一轮训练需要的时间太长,例如超过十小时,几乎 11/13 05:25
7F:→ art1: 是保证无法储存参数 11/13 05:26
8F:推 goldflower: 当然没这规定 时间不够就时间不够的训练法罗 不然你 11/13 15:15
9F:→ goldflower: 要做decay之类的都不能做 或者可以先整理一次资料把 11/13 15:15
10F:→ goldflower: 相似的排到下个epoch再训练就好 11/13 15:15