Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以使为on-topic

6个月前关闭。



Improve this question





我正在尝试加载ResNext50,在CenterNet之上,我可以使用Google Colab或Kaggle的GPU进行加载。但,


想知道该网络需要多少GPU内存(VRAM)?
当使用保留有可用的5.5GB VRAM(8GB以上)的RTX 2070时,我无法加载它。


批处理大小为1,#of worker为1,所有值均设置为最小值。作业系统:Ubuntu 18.04(使用PyTorch)

在TensorFlow中,我知道我可以限制VRAM的数量(这使我可以加载和运行网络,尽管我没有足够的VRAM),但是在PyTorch中我还没有找到此功能。

任何想法如何解决这个问题?

最佳答案

使用第三方依赖

您可以使用第三方库model以字节为单位获取torchfunc的大小(免责声明,我是作者)。

import torchfunc

# Assuming model is loaded
print(torchfunc.sizeof(model))


没有依赖

此功能非常简单,可以衬衫,您可以复制它,see source code

确切尺寸

它只是模型的大小,在forwardbackward期间会有更多的VRAM内存使用,并且取决于您batch的大小。您可以尝试使用pytorch_modelsize库来估算这些值(尽管不确定它是否适用于您的网络)。

清除缓存

您应该在运行网络之前清除缓存(对于我来说,有时重新启动工作站会有所帮助),因为您肯定有足够的内存。使用GPU杀死进程也应该有所帮助。

再次torchfunc可以帮助您,发出以下命令:

import torchfunc

torchfunc.cuda.reset()

关于deep-learning - 在RTX2070上加载ResNet50-内存不足,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59728088/

10-16 17:01
查看更多