TensorFlow:如何测量每个张量占用多少 GPU 内存?

2024-03-12

我目前正在实施YOLO http://pjreddie.com/media/files/papers/yolo.pdf在 TensorFlow 中,我对它占用的内存量感到有点惊讶。在我的 GPU 上,我可以使用它们来训练 YOLODarknet http://pjreddie.com/darknet/批处理大小为 64 的框架。在 TensorFlow 上,我只能使用批处理大小 6 来执行此操作,而使用 8 时,我已经耗尽了内存。对于测试阶段,我可以使用批量大小 64 运行,而不会耗尽内存。

  1. 我想知道如何计算每个张量消耗了多少内存?所有张量默认都保存在GPU中吗?我可以简单地将总内存消耗计算为形状 * 32 位吗?

  2. 我注意到,由于我使用动量,所以我所有的张量也有一个/Momentum张量。这也可能使用大量内存吗?

  3. 我正在用一种方法扩充我的数据集distorted_inputs,与中定义的非常相似CIFAR-10 教程 https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/models/image/cifar10/cifar10.py。难道这部分占用了很大的内存?我相信 Darknet 会在 CPU 中进行修改。


现在1258 https://github.com/tensorflow/tensorflow/issues/1258已关闭,您可以在导入 TensorFlow 之前通过设置环境变量来启用 Python 中的内存日志记录:

import os
os.environ['TF_CPP_MIN_VLOG_LEVEL']='3'
import tensorflow as tf

将会有一个lot由此导致的日志记录。您需要 grep 结果以找到适当的行。例如:

grep MemoryLogTensorAllocation train.log
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow:如何测量每个张量占用多少 GPU 内存? 的相关文章

随机推荐