1

我目前正在使用 vowpal wabbit 进行培训阶段。数据集很大(4GBytes),已经运行了一整夜。还在训练中,不知道能坚持多少天。

您是否知道是否有办法停止训练,但将模型保持并保存在当前状态,因此必须在真实数据上对其进行测试?

4

2 回答 2

2

如果您事先知道可以使用其中任何一种--save_per_pass(因此每次通过后都会保存模型),或者如果您只进行一次学习,则可以包含带有标签 save_filename的特殊示例,其中文件名是应保存模型的路径。

如果您进行多遍学习并且第一遍结束(因此创建了一个缓存文件),您无法将save示例包含在训练数据中,所以恐怕您没有简单的方法来保存训练的模型所以远的。

我会说 4 GiB 是一个小数据集:-)。当我在 10GiB(压缩)数据集(也不算大)上进行训练时,花了两个小时(包括创建缓存文件,这需要大部分时间,进一步的通过/实验要快得多),没有任何并行化。当然,这取决于数据集、在线学习与批量学习、使用的缩减和参数,尤其是通过次数和硬盘驱动器速度,但对于这么小的数据集,“整夜”在我看来太长了。

正如@user3914041 所说,检查标准错误日志。

于 2015-07-21T19:33:27.053 回答
1

没有办法在任何时候停止大众并转储其模型状态。如果您从文件中训练,您可能会尝试估计当前大众汽车的进度并删除一条数据,以便大众汽车可以到达数据集的末尾。您应该记住,大众使用缓冲读取。

或者,也许更好的方法是将save示例插入训练数据集中。如果您使用-f参数启动 VW,那么一旦 VW 到达此示例,您将看到创建的指定模型文件。当您不指定-f,但您save_foo|的数据集中有示例时,模型将保存到名为“foo”的文件中。然后你可以杀死大众进程。

所有这些建议都是肮脏的黑客,可能会也可能不会。当您希望保存模型并下次使用 Martin 提出的选项之一时,您最好提前计划。

更新:包括马丁的笔记。

于 2015-07-21T21:01:31.717 回答