我目前正在使用Vowpal Wabbit进行训练阶段。数据集很大(4G字节),已经运行了一整晚。它还在训练中,我不知道还要持续多少天。
你知道是否有办法停止训练,但保留并保存模型的当前状态,以便在真实数据上进行测试吗?
回答:
如果你提前知道这一点,你可以使用--save_per_pass
(这样每次通过后都会保存一个模型),或者如果你只进行一次通过的学习,你可以在特殊示例中包含带有标签save_filename
的示例,其中文件名是模型应保存的路径。
如果你进行多通过学习并且第一通过已经结束(因此创建了一个缓存文件),你无法在训练数据中包含save
示例,所以我担心你没有简单的方法来保存到目前为止训练的模型。
我认为4 GiB是一个小数据集:-)。当我在10GiB(压缩)的数据集上进行训练时(这也不算大),它花了两个小时(包括创建缓存文件的时间,这是最耗时的部分,后续的通过/实验要快得多),没有使用并行化。当然,这取决于数据集,线上与批量学习,所使用的简化和参数,尤其是通过次数和硬盘速度,但“整晚”对我来说对于这样一个小数据集来说似乎太长了。
正如@用户所说,检查stderr日志。