Я пытаюсь преобразовать модель 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 ГБ оперативной памяти