Optimization 无需进一步张量分配的tensorflow中n次迭代后的OOM

Optimization 无需进一步张量分配的tensorflow中n次迭代后的OOM,optimization,tensorflow,Optimization,Tensorflow,有几次,当使用尽可能多的GPU内存工作时,我只在经过一定数量的训练迭代之后(没有明确分配新的张量)才会遇到OOM错误。只需稍微减少一点批量大小(即从32个减少到30个)就可以解决问题,但我不明白是什么导致了这种行为 谢谢 你们完成图表了吗?你在分配不同大小的张量吗?由于缓存分配器的工作方式,如果内存分配的大小发生变化,静态图形可能会耗尽内存。不,我没有完成图形,因为我不知道此操作。在所有迭代过程中,张量的大小都是相同的(相同大小的图像,相同的批量大小),所以我想这不是问题所在。finalize操

有几次,当使用尽可能多的GPU内存工作时,我只在经过一定数量的训练迭代之后(没有明确分配新的张量)才会遇到OOM错误。只需稍微减少一点批量大小(即从32个减少到30个)就可以解决问题,但我不明白是什么导致了这种行为


谢谢

你们完成图表了吗?你在分配不同大小的张量吗?由于缓存分配器的工作方式,如果内存分配的大小发生变化,静态图形可能会耗尽内存。不,我没有完成图形,因为我不知道此操作。在所有迭代过程中,张量的大小都是相同的(相同大小的图像,相同的批量大小),所以我想这不是问题所在。finalize操作是否防止在每次运行操作时分配不同数量的内存?finalize graph防止意外修改graph。将批处理大小从32减少到30总是可以解决问题,这表明这不是真正的内存泄漏,尽管对摘要、检查点或其他辅助信息的计算可能会导致每隔几次迭代就略微增加GPU的使用率?您完成了图表吗?你在分配不同大小的张量吗?由于缓存分配器的工作方式,如果内存分配的大小发生变化,静态图形可能会耗尽内存。不,我没有完成图形,因为我不知道此操作。在所有迭代过程中,张量的大小都是相同的(相同大小的图像,相同的批量大小),所以我想这不是问题所在。finalize操作是否防止在每次运行操作时分配不同数量的内存?finalize graph防止意外修改graph。将批处理大小从32减少到30总是可以解决这个问题,这表明这不是真正的内存泄漏,尽管对摘要、检查点或其他辅助信息的计算可能会导致每隔几次迭代GPU使用率略高?