我有三个模型(模型 - 识别图像中的对象,模型B - 识别图像的样式,模型C - 识别图像中的关键字)使用Keras训练 - 具有三种不同的模型体系结构 - 用于将图像分类为三种不同的方式。
我有一个服务器,它围绕这些模型来提供基于请求即时提供的预测,即用户上传图像并在识别对象,样式或关键字之间进行选择。我只有1个GPU。由于Keras分配GPU内存的方式,我已将预测模型包含在函数中。这样在每次函数调用之后释放内存。
只要对同一模型有一个请求,就可以正常工作。但是如果两个请求(比如一个用于样式而另一个用于关键字) - 命中服务器 - Keras耗尽内存并进入一个不可恢复的循环。然后我必须终止进程并重新启动服务器以使其再次运行。
我对如何解决问题有一些想法。不确定哪些是可行的并且会起作用。