Pytorch 0.4占用大量内存,但不占用0.3

时间:2019-01-15 13:53:53

标签: python conv-neural-network pytorch

我正在尝试将适用于pytorch 0.3的Pytorch模型转换为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中的模型使用了约4GB的ram,而在CPU上调试时,它在版本0.4中使用了> 20gb的ram

0 个答案:

没有答案