python - 减少 sklearn CountVectorizer、pandas 和 numpy 的内存占用
问题描述
我有一个利用神经网络和sklearn.feature_extraction.text.CountVectorizer
. 我也有这个软件的许多实例(100+),我很难理解为什么每个实例都占用了 190MB 的 RAM,其中 60MB 是共享的。
虽然神经网络内存占用非常低,但我无法理解为什么只是以下语句(以及其他导入torch、pandas和numpy)会导致软件内存使用量急剧增加。
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
- 使用这些导入如何尽可能节省内存?
- 这是编程语言的限制吗?
- 我应该利用该语言的其他功能来实现我想要的结果吗?
解决方案
推荐阅读
- php - 将css样式添加到api json数据的正确方法
- java - 使用 spring-boot-starter-oauth2-resource-server 连接 Google oauth2
- python - 如何检查用户是否输入了 python 列表中列出的值,例如 [1,2,3,4,5]
- reactjs - 如何将外部 url 与 Material UI 中的按钮链接?
- javascript - 如何使用柏树找到元素内部的href?
- python - 在 geopandas 中移动阿拉斯加和夏威夷以获取 choropleths
- python - 有什么办法可以修复不良货币读取?
- python - 单行柱形图plotly python
- css - 一个属性上的css多个转换?
- python - 在 discord.py 中发送 dm