我正在加载一个保存的tensorflow模型(.pb文件),并试图评估它为带有guppy包的模型分配了多少内存。在简单教程之后,下面是我尝试过的:
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一起工作。
发布于 2021-07-02 17:32:21
如果您在Windows上,则崩溃可能与https://github.com/zhuyifei1999/guppy3/issues/25有关。检查pywin32版本,如果它是< 300,则使用
pip install -U pywin32https://stackoverflow.com/questions/68102156
复制相似问题