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

当Apache mod_wsgi django调用keras模型时,如何释放占用的GPU内存?,django,apache,memory,keras,Django,Apache,Memory,Keras,我的服务器配置如下: Apache2.4.23. Mod_wsgi 4.5.9 通过使用Django框架和apache服务器,我们称之为Keras深度学习模型成功调用模型后,模型始终在GPU内存中运行,这导致GPU内存无法释放,除非关闭apache服务器 那么,当Apache+Mod_wsgi+Django调用Keras模型时,有没有办法控制GPU内存的释放 谢谢 这将清除当前会话(图),因此过时的模型应该从GPU中删除。如果它不起作用,您可能需要“删除模型”并重新加载它。对于无法使K.cle

我的服务器配置如下:

  • Apache2.4.23.
  • Mod_wsgi 4.5.9
  • 通过使用Django框架和apache服务器,我们称之为Keras深度学习模型成功调用模型后,模型始终在GPU内存中运行,这导致GPU内存无法释放,除非关闭apache服务器

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

    谢谢


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

    对于无法使
    K.clear\u session()
    起作用的人,有一种替代解决方案:

    from numba import cuda
    cuda.select_device(0)
    cuda.close()
    
    Tensorflow
    只是将内存分配给GPU,而CUDA负责管理GPU内存


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

    是的,但由于某种原因,最新的spyder控制台内核崩溃,尽管GPU内存再次可用

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

    当我在Jupyter笔记本中使用Keras和TensorFlow后端时,这一个实际上对我有效。谢谢!没有其他方法适合我。但有没有办法在不重启Jupyter内核的情况下运行新的Keras模型呢?一旦我用cuda.close()关闭了cuda,我该如何训练新模型呢
    from numba import cuda
    cuda.select_device(0)
    cuda.close()