小编Car*_*man的帖子

PyTorch:为什么运行 output = model(images) 使用这么多 GPU 内存?

在试图理解为什么我的 PyTorch 模型的最大批量大小受到限制时,我注意到使用最多内存的不是模型本身,也不是将张量加载到 GPU 上。第一次生成预测时,大部分内存都会被用完,例如在训练循环中使用以下行:

output = model(images)
Run Code Online (Sandbox Code Playgroud)

其中 images 是一些输入张量, model 是我的 PyTorch 模型。在运行该行之前,我有大约 9GB 的可用 GPU 内存,之后我的可用内存降至 2.5GB(运行loss = criterion(outputs, labels).

两个问题:

  1. 这是正常的吗?
  2. 为什么会发生这种情况?这些内存都用来做什么?据我了解,模型已经加载,并且在进行调用之前实际的输入张量已经在 GPU 上。输出张量本身不可能那么大。它与存储计算图有关系吗?

python gpu machine-learning pytorch

4
推荐指数
1
解决办法
949
查看次数

标签 统计

gpu ×1

machine-learning ×1

python ×1

pytorch ×1