Сокращение объема памяти склеарна CountVectorizer, pandas и numpy - PullRequest
1 голос
/ 27 апреля 2020

У меня есть Python3 программное обеспечение, которое использует нейронные сети и sklearn.feature_extraction.text.CountVectorizer. У меня также есть много экземпляров этого программного обеспечения (более 100), и мне трудно понять, почему каждый экземпляр потребляет до 190 МБ ОЗУ, из которых 60 МБ совместно используются.

Хотя объем памяти нейронной сети очень низок Я не могу понять, почему только следующее утверждение (и другие операции импорта torch , pandas и numpy) приводят к увеличению использования памяти программного обеспечения

from sklearn.feature_extraction.text import CountVectorizer

Я занимался Python3 управлением памятью, распределением кучи и многими другими темами, но насколько я понимаю, побочным эффектом вышеприведенного утверждения является получение всех символов из sklearn.feature_extraction.text загружены в память не только класс CountVectorizer и его зависимости.

Во-первых, я испытал желание подумать, что проблема заключается в использовании из CountVectorizer, поэтому после краткого исследования Я перенес управление памятью на класс c marisa_trie. После многих тестов память, потребляемая процессом, была одинаковой, поэтому был сделан вывод, что управление nn не было настоящей проблемой.

Я наконец-то смоделировал простой скрипт на Pyton3, просто оператор import гуппи ) для отслеживания его памяти, и я обнаружил, что только этот оператор заставляет процесс съедать> 60 МБ памяти.

Это мой другой импорт:

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
  • Как можно максимально эффективно использовать память при использовании этих импортов?
  • Это ограничение языка программирования?
  • Должен ли я использовать другие функции языка для достижения желаемого результата?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...