Sklearn - 没有 pkl 文件的模型持久性
Posted
技术标签:
【中文标题】Sklearn - 没有 pkl 文件的模型持久性【英文标题】:Sklearn - model persistence without pkl file 【发布时间】:2016-08-30 06:09:09 【问题描述】:我有兴趣保存在 Sklearn 中创建的模型(例如,EmpiricalCovariance、MinCovDet 或 OneClassSVM)并稍后重新应用。 我熟悉保存 PKL 文件和 joblib 的选项,但是我更愿意显式保存模型而不是序列化的 python 对象。 这样做的主要动机是它可以轻松查看模型参数。
我找到了一个关于这样做的参考: http://thiagomarzagao.com/2015/12/07/model-persistence-without-pickles/
问题是: 我可以指望这种工作随着时间的推移(即新版本的 sklearn)吗?这是一个太多的“hacky”解决方案吗?
有人有这方面的经验吗?
谢谢 乔纳森
【问题讨论】:
为什么这对你不起作用? @ 987654322@ 我认为如果您腌制并重新加载,您不会丢失参数......在您给出的示例中,他们选择了这条路线,因为数据量很大。您在处理海量数据吗?如果是这样,sklearn 可能会或可能不会工作。谷歌有一个用于查询的持久表,他们并没有对其进行腌制,但他们正在大规模工作。您不进行酸洗的主要动机应该是它太慢了,而不是您想再次访问参数。 【参考方案1】:我不认为这是一个 hacky 解决方案,一位同事做了类似的事情,他导出了一个模型供记分器使用,它是用 golang 编写的,并且比 scikit-learn 记分器快得多。如果您担心与 sklearn 未来版本的兼容性,您应该考虑使用环境管理器,例如 conda
或 virtualenv
;无论如何,这只是很好的软件工程实践,无论如何你都应该开始习惯。
【讨论】:
以上是关于Sklearn - 没有 pkl 文件的模型持久性的主要内容,如果未能解决你的问题,请参考以下文章
在使用 joblib 加载模型之前检查 sklearn 版本
使用 SKLearn 在 Django 项目中大大超出 Heroku 内存配额