我有一个利用神经网络和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