我的服务器配置如下:
通过使用Django框架和apache服务器,我们称之为Keras深度学习模型。 成功调用模型后,模型一直在GPU内存中运行,导致GPU内存无法释放,除非关闭apache服务器。
所以,当用Apache + Mod_wsgi + Django调用Keras模型时,有没有办法控制GPU内存的释放?
谢谢!
答案 0 :(得分:7)
对于无法使K.clear_session()
工作的人们,还有另一种解决方案:
from numba import cuda
cuda.select_device(0)
cuda.close()
Tensorflow
只是为GPU分配内存,而CUDA负责管理GPU内存。
如果您用K.clear_session()
清除了所有图形后CUDA出于某种原因拒绝释放GPU内存,则可以使用cuda
库直接控制CUDA清除GPU内存。 / p>
答案 1 :(得分:5)
from keras import backend as K
K.clear_session()
这将清除当前会话(Graph),因此应从GPU中删除过时的模型。如果它不起作用,你可能需要建立模型'并重新加载它。
答案 2 :(得分:1)
是的,但是最新的方法使我的spyder console kerner崩溃了,尽管GPU内存又重新可用了
from numba import cuda
cuda.select_device(0)
cuda.close()