Tensorflow 程序 内存泄漏+显存分配不足 数据预处理

    1. 目的

                  在循环中,从硬盘中读取每个batch 的图片。

    2. 错误步骤及原因     

             图片截取从here。        

Tensorflow 程序 内存泄漏+显存分配不足 数据预处理_第1张图片

     3. 修改方法

  •     方法一:可以将图片数据预处理部分不使用 tensor ,用的python 常见的numpy 等类型,这样就不会产生新的tensor 结点。
  •     方法二:使用 tf.train.batch 等函数。

     4. 调试测试函数

  •    查看显卡显存使用量
import pynvml
pynvml.nvmlInit()

handle = pynvml.nvmlDeviceGetHandleByIndex(0)     #   第0块显卡
meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
print(meminfo.used)                               # 查看显卡显存使用量
  • 查看内存变量类型引用次数(当前次数 ,增加次数)
import gc
import objgraph

gc.collect()       # 变量回收
objgraph.show_growth()                     #显示当前变量类型引用次数 及增加引用次数
objgraph.show_most_common_types(limit=50)  #显示引用次数最多的50个变量类型

 

你可能感兴趣的:(tensorflow,图像batch,内存泄漏,显存使用增加,tensorflow)