减少sklearn CountVectorizer,熊猫和numpy的内存占用

时间:2020-04-27 13:36:59

标签: python memory scikit-learn

我有一个利用神经网络和sklearn.feature_extraction.text.CountVectorizer的Python3软件。我也有很多该软件的实例(超过100个),而且我很难理解为什么每个实例都占用多达190MB的RAM,其中60MB是共享的。

虽然神经网络的内存占用量很低,但我无法理解为什么仅以下语句(以及 torch pandas numpy < / strong>)导致软件内存使用量急剧增加。

from sklearn.feature_extraction.text import CountVectorizer

我一直在研究Python3的内存管理,堆分配和许多其他主题,但据我所知,上述声明的副作用是将sklearn.feature_extraction.text中的所有符号加载到内存中,而不仅仅是CountVectorizer类及其依赖项。

首先,我很容易想到问题是CountVectorizer用法,因此在进行了简短的研究之后,我将其内存管理迁移到了经典的marisa_trie。经过多次测试,该过程消耗的内存是相同的,因此得出的结论是 nn 管理不是真正的问题。

我终于用 import 语句(和 guppy )模拟了一个简单的Pyton3脚本,以跟踪其内存,我发现仅该语句会导致占用超过60MB内存的过程。

这些是我的其他进口商品:

import numpy as np
import pandas as pd
import torch
import torch.nn as nn
import torch.onnx
from torch import optim
import marisa_trie
from sklearn.feature_extraction.text import CountVectorizer
  • 使用这些导入如何尽可能提高内存效率?
  • 这是编程语言的限制吗?
  • 我是否应该利用语言的其他功能来达到预期的效果?

0 个答案:

没有答案