【发布时间】:2016-06-04 20:53:36
【问题描述】:
我有几个占用大量内存的大型对象(sklearn 模型),我想在多个进程之间共享它们。 有没有办法做到这一点?
- 它必须是“实时”对象,而不是序列化版本
- 我知道有一个内存映射版本的 numpy 数组,它负责模型内存的重要部分 - 但使用它们需要对 sklearn 源代码进行重大更改,这将很难维护
【问题讨论】:
-
你能举个具体的例子吗?哪些模型属性占用大量内存?
-
视情况而定。一个主要问题是文本矢量化模型中的词汇表。
-
你在使用稀疏矩阵吗?
-
我不知道......如果没有具体的测试用例,很难提出任何具体的建议(你甚至还没有提到你指的是哪种模型)。如果您提供了MCVE,那么您将有更好的机会获得有用的答案。
-
你还需要这个问题的答案吗?如果是这样,请告诉我您的意思是(a)在不同时间运行的进程之间共享对象,还是(b)在同一台计算机上同时运行。请选择a或b。
标签: python scikit-learn shared-memory memory-mapped-files