gpt4 book ai didi

vowpalwabbit - vowpal wabbit 中的 `--save_resume` 选项到底做了什么

转载 作者:行者123 更新时间:2023-12-01 11:34:55 24 4
gpt4 key购买 nike

我正在使用从两个不同来源流式传输的数据训练神经网络,启发式:

cat train1.vw |vw --oaa 10 --nn 20 --save_resume -f /tmp/weights
cat train2.vw |vw --oaa 10 --nn 20 --save_resume -i /tmp/weights -f /tmp/weights

然而,这会引发一个错误,大意是“--oaa 不能被多次传递。”很好,--save_resume 保留配置参数,所以我修改了:

cat train1.vw |vw --oaa 10 --nn 20 --save_resume -f /tmp/weights
cat train2.vw |vw --save_resume -i /tmp/weights -f /tmp/weights

一切正常。出于好奇,我在没有 --save_resume 选项的情况下重复了第二种方法,一切都仍然有效,除了模型性能稍微差一点。

我推测 --save_resume 保存了权重文件中看到的学习率和示例数。这似乎是从输出中发生的事情,并证实了更好的性能。还有什么吗?

编辑:经过一些实验后,我发现通过 -i 传递初始回归器是引发“选项‘--oaa’不能指定多次”的原因错误”,而不是 --save_resume

最佳答案

你的猜测是正确的。当在 train1.vw 上第一次训练时不使用 --save_resume 时,模型 /tmp/weights 不包含学习率和其他状态信息(例如,大众汽车默认使用 --adaptive,因此每个功能都有一个学习率)。这可能会影响最终模型的质量,通常会使它变得更糟。

报告为平均损失的不同数字的另一个原因是,当不使用 --save_resume 时,VW 仅计算给定数据的平均值(train1 .vwtrain2.vw).

--save_resume 的想法是当分两步训练时,你应该得到相同的最终平均损失

cat train1.vw | vw --oaa 10 --nn 20 --save_resume -f /tmp/weights
cat train2.vw | vw --save_resume -i /tmp/weights -f /tmp/weights

一步训练时

cat train1.vw train2.vw | vw --oaa 10 --nn 20 -f /tmp/weights

查看 related solved GitHub issue .

关于vowpalwabbit - vowpal wabbit 中的 `--save_resume` 选项到底做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com