我必须在一个有7天时间限制的集群上运行我的模型,如果计算成本超过了7天,作业将在集群上结束。因此,训练将不会完成以获得用于预测的已保存模型。
我正在训练一些分类器模型(例如SVC、KNeighborsClassifier等)。从scikit-learn
开始,想知道是否有任何函数或库可以在特定持续时间之间拍摄模型快照,然后从已停止的点继续训练(类似于深度学习中的应用)?
谢谢
发布于 2019-08-13 07:02:24
一般而言,在scikit-learn中不可能在试穿期间拍摄快照。该库仅提供有限的persistence features。可以增量地训练一些模型,但不能训练其他模型。对于可能的模型,您必须编写不同数量的样板代码。
incremental learning下列出的模型具有warm_start
属性和/或用于此目的的.partial_fit()
方法。您可以在循环中对数据批处理调用partial_fit
。此外,您需要编写代码来存储和检索训练进度和部分训练的模型(有关模型模型持久性的其他信息,请参阅this question )。
一些模型(特别是合奏,如随机森林)原则上可以合并。因此,不是增量地训练一个模型,而是在循环中训练多个独立的模型实例,然后将它们合并。但是,据我所知,scikit-learn API不支持这样的合并。因此,尽管这样做是可能的,但它需要黑客处理私有属性,并深入了解模型的数学和实现。
https://stackoverflow.com/questions/57471418
复制