我的服务器配置如下:
- 阿帕奇 2.4.23.
- 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()