如何通过 Apache mod_wsgi django 调用 keras 模型时释放占用的 GPU 内存



我的服务器配置如下:

  1. 阿帕奇 2.4.23.
  2. Mod_wsgi 4.5.9

通过使用 Django 框架和 apache 服务器,我们称之为 Keras 深度学习模型。并且模型调用成功后,模型一直运行在 GPU 内存中,导致 GPU 内存除了关闭 apache 服务器之外无法释放

那么,当通过 Apache+Mod_wsgi+Django 调用 Keras 模型时,有没有办法控制 GPU 内存的释放呢?

谢谢!

运行时内存占用屏幕截图

对于无法使K.clear_session()工作的人,还有另一种解决方案:

from numba import cuda
cuda.select_device(0)
cuda.close()

Tensorflow只是将内存分配给 GPU,而 CUDA 负责管理 GPU 内存。

如果 CUDA 在您清除所有图形后以某种方式拒绝释放 GPU 内存 K.clear_session() ,那么您可以使用cuda库直接控制 CUDA 以清除 GPU 内存。

from keras import backend as K
K.clear_session()

这将清除当前会话(图形(,因此应从 GPU 中删除过时的模型。如果它不起作用,您可能需要"del model"并重新加载它。

from numba import cuda
device = cuda.get_current_device()
device.reset()

最新更新