我正在尝试在我的C ++应用程序中使用Tensorflow进行推理。应用程序的其他部分需要访问大量GPU内存(并非与Tensorflow完全同时)。但是,一旦使用Tensorflow进行推理,它将占用GPU内存,直到应用程序结束才释放它。理想情况下,经过推论,我将能够释放Tensorflow所使用的GPU内存,以允许其他算法使用该GPU。
还有其他人遇到这个问题,您找到解决方案了吗?
答案 0 :(得分:2)
Tensorflow在进程的生命周期内分配内存。不幸的是,没有办法解决,只有在过程完成后才能取回内存。
解决此问题的一种方法是将应用程序“模块化”为多个不同的进程。有一个执行推理的过程,以及一个调用它的父过程(您的应用程序)。您可以运行子进程阻塞,因此整个应用程序的行为就像是在执行代码本身一样(当然除了处理资源共享外)。