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

xix*_*ixi 8 memory apache django keras

我的服务器配置如下:

  1. apache 2.4.23.
  2. Mod_wsgi 4.5.9

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

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

谢谢!

运行时内存足迹截图

Rav*_*euk 9

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

from numba import cuda
cuda.select_device(0)
cuda.close()
Run Code Online (Sandbox Code Playgroud)

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

如果您在用清除所有图形后CUDA不知何故拒绝释放GPU内存K.clear_session(),则可以使用该cuda库对CUDA进行直接控制以清除GPU内存。

  • 一旦我使用 cuda.close() 关闭了 cuda,我如何训练新模型 (3认同)
  • 谢谢!没有其他方法对我有用。但是有没有办法在不重启 Jupyter Kernel 的情况下运行新的 Keras 模型呢? (2认同)
  • 当尝试训练新模型时,会发生内核死亡 (2认同)

ora*_*bis 7

from keras import backend as K
K.clear_session()
Run Code Online (Sandbox Code Playgroud)

这将清除当前会话(Graph),因此应从GPU中删除陈旧模型.如果它不起作用,您可能需要'del model'并重新加载它.