如何解决使用 guppy.hpy() 不工作获取张量流模型的内存使用情况
我正在加载一个已保存的 tensorflow 模型(.pb
文件),并尝试评估它为带有 guppy
包的模型分配了多少内存。在 simple tutorial 之后,这是我尝试过的:
from guppy import hpy
import tensorflow as tf
heap = hpy()
print("Heap Status at starting: ")
heap_status1 = heap.heap()
print("Heap Size : ",heap_status1.size," bytes\n")
print(heap_status1)
heap.setref()
print("\nHeap Status after setting reference point: ")
heap_status2 = heap.heap()
print("Heap size: ",heap_status2.size," bytes\n")
print(heap_status2)
model_path = "./saved_model/" #.pb file directory
model = tf.saved_model.load(model_path)
print("\nHeap status after creating model: ")
heap_status3 = heap.heap()
print("Heap size: ",heap_status3.size," bytes\n")
print(heap_status3)
print("Memory used by the model: ",heap_status3.size - heap_status2.size)
我不知道为什么,但是当我运行代码时,当我调用 heap_status1 = heap.heap()
时它突然停止执行。它不会抛出任何错误。
当我不使用任何与 tensorflow 相关的东西时,同样的代码运行良好,即当我只是创建一些随机列表、字符串等而不是加载 tensorflow 模型时,它会成功运行。
注意:我的模型将在CPU 设备中运行。不幸的是,tf.config.experimental.get_memory_info
仅适用于 GPU。
解决方法
如果您使用的是 Windows,崩溃可能与 https://github.com/zhuyifei1999/guppy3/issues/25 有关。检查pywin32版本,如果升级pywin32
pip install -U pywin32
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。