Pytorch 0.4 занимает много памяти, но не 0.3 - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь преобразовать модель Pytorch, которая работает на pytorch 0.3, в 0.4.1. Тем не менее, кажется, что он занимает много памяти как во время обучения, так и оценки в 0.4.1.

Это код: https://github.com/multimodallearning/pytorch-mask-rcnn/blob/master/model.py

Когда я выполняю код в строке 1636, использование памяти значительно возрастает. Сбой кода в строке 1645, когда моему компьютеру не хватает памяти:

    [p2_out, p3_out, p4_out, p5_out, p6_out] = self.fpn(molded_images)

    # Note that P6 is used in RPN, but not in the classifier heads.
    rpn_feature_maps = [p2_out, p3_out, p4_out, p5_out, p6_out]
    mrcnn_feature_maps = [p2_out, p3_out, p4_out, p5_out]

Для pytorch 0.4 я заменил «F.upsample ()» на «F.interpolate ()», а volitile = True на «with torch.no_grad ()». Кто-нибудь знает причину этого всплеска использования памяти?

Поскольку там, где я проходил, требуется обратное распространение, я думаю, это также не имеет ничего общего с отсутствующей функцией detatch ().

Я ожидаю, что использование памяти между pytorch 0.3 и 0.4 будет аналогичным. Но в моем случае модель в pytorch 0.3 использует ~ 4 ГБ оперативной памяти, тогда как в версии 0.4 при отладке на ЦП она использует> 20 ГБ оперативной памяти

...