Как удалить объект или модель полностью из памяти в Keras / Python3? - PullRequest
0 голосов
/ 20 июня 2019

Во-первых, я хотел бы предоставить информацию о памяти перед процессами.

pmem(rss=288796672, vms=4105973760, shared=107503616, text=2039808, lib=0, data=771235840, dirty=0)

Я построил модель, используя Keras, и назначил ее переменной model.Затем я отправил объект model в конструктор класса для клонирования:

from tensorflow.python.keras.models import clone_model
from tensorflow.python.keras import backend as K
class Source:
    def __init__(self, model):
        config = Config()
        self.model = clone_model(model)
        # breakpoint to read memory
        self.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)

Информация о памяти после процесса клонирования показана ниже:

pmem(rss=289615872, vms=4333002752, shared=107843584, text=2039808, lib=0, data=797331456, dirty=0)

Пока все хорошо,Когда я пытаюсь удалить объект self.model с помощью del self.model, память не уменьшается.

pmem(rss=289615872, vms=4333002752, shared=107843584, text=2039808, lib=0, data=797331456, dirty=0)

Затем я пытался выполнить сборщик мусора с помощью gc.collect(), но результат был тот же, ничего не имеетизменилось.

pmem(rss=289615872, vms=4333002752, shared=107843584, text=2039808, lib=0, data=797331456, dirty=0)

Наконец, я попытался очистить сеанс с помощью K.clear_session().Снова ничего не изменилось.

pmem(rss=289615872, vms=4333002752, shared=107843584, text=2039808, lib=0, data=797331456, dirty=0)

Версия Keras: 2.1.6 (понижена с последней версии для решения этой проблемы, но она не работает.)

Версия Tensorflow: 2.0.0-alpha0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...