在 RTX2070 上加载 ResNet50 - 内存不足
Loading ResNet50 on RTX2070 - Out of Memory
我正在尝试加载 ResNext50,并在其上加载 CenterNet,我可以使用 Google Colab 或 Kaggle 的 GPU 来完成。但是,
想知道这个网络需要多少 GPU 内存 (VRAM)?
当使用 RTX 2070 时剩余 5.5GB 显存(超出 8GB),我无法加载它。
批量大小为 1,#of workers 为 1,一切都设置为最小值。 OS:Ubuntu 18.04(使用 PyTorch)
在 TensorFlow 中,我知道我可以限制 VRAM 的数量(这使我能够加载和 运行 网络,尽管我没有足够的 VRAM),但在 PyTorch 中我没有找到这个功能呢。
有什么解决办法吗?
使用第三方依赖
您可以使用第三方库 torchfunc
获得 model
的大小(以字节为单位)(免责声明我是作者)。
import torchfunc
# Assuming model is loaded
print(torchfunc.sizeof(model))
无依赖关系
这个函数很简单,很简单,你照搬就行了,see source code
实际尺寸
这只是您模型的大小,在 forward
和 backward
期间有更多的 VRAM 内存使用,并且取决于您的 batch
的大小。您可以尝试 pytorch_modelsize 库来估计这些(但不确定它是否适用于您的网络)。
清除缓存
你应该在 运行 网络之前清除你的缓存(有时重启工作站对我有帮助),因为你肯定有足够的内存。使用 GPU 终止进程也应该有所帮助。
再一次 torchfunc
可以提供帮助,请发出以下命令:
import torchfunc
torchfunc.cuda.reset()
我正在尝试加载 ResNext50,并在其上加载 CenterNet,我可以使用 Google Colab 或 Kaggle 的 GPU 来完成。但是,
想知道这个网络需要多少 GPU 内存 (VRAM)?
当使用 RTX 2070 时剩余 5.5GB 显存(超出 8GB),我无法加载它。
批量大小为 1,#of workers 为 1,一切都设置为最小值。 OS:Ubuntu 18.04(使用 PyTorch)
在 TensorFlow 中,我知道我可以限制 VRAM 的数量(这使我能够加载和 运行 网络,尽管我没有足够的 VRAM),但在 PyTorch 中我没有找到这个功能呢。
有什么解决办法吗?
使用第三方依赖
您可以使用第三方库 torchfunc
获得 model
的大小(以字节为单位)(免责声明我是作者)。
import torchfunc
# Assuming model is loaded
print(torchfunc.sizeof(model))
无依赖关系
这个函数很简单,很简单,你照搬就行了,see source code
实际尺寸
这只是您模型的大小,在 forward
和 backward
期间有更多的 VRAM 内存使用,并且取决于您的 batch
的大小。您可以尝试 pytorch_modelsize 库来估计这些(但不确定它是否适用于您的网络)。
清除缓存
你应该在 运行 网络之前清除你的缓存(有时重启工作站对我有帮助),因为你肯定有足够的内存。使用 GPU 终止进程也应该有所帮助。
再一次 torchfunc
可以提供帮助,请发出以下命令:
import torchfunc
torchfunc.cuda.reset()