TensorFlow服务和服务的模型数量超出了内存允许的范围

时间:2018-10-02 17:02:15

标签: tensorflow-serving

TensorFlow Serving可通过配置--model_config_file命令行参数来服务于多个模型。我在小型实验中成功使用了此功能。

但是,我不清楚这些模型所需的总内存大于可用的GPU内存时会发生什么情况。

服务器只是崩溃了吗?还是支持保留一部分模型可用,并可能根据使用情况卸载/加载模型?

谢谢。

2 个答案:

答案 0 :(得分:1)

在内存不足时尝试加载模型将无法加载该模型。目前没有动态加载/卸载。

答案 1 :(得分:0)

如当前所写,如果没有足够的内存来加载所有请求加载的模型,它将崩溃。内部有一个功能可以优雅地拒绝加载不合适的模型,您可以通过编写一个小的PR来启用该功能,该PR将ServerCore :: Options :: total_model_memory_limit_bytes选项[1]传送到main.cc中的标志。但是请注意,“适合内存”的概念是基于估计模型RAM占用空间的粗略方法。

正如Gautam所说,它不会动态加载/卸载,尽管有一个为此实现的库(当前在发行的二进制文件中未使用),称为CachingManager [2]。

[1] https://github.com/tensorflow/serving/blob/master/tensorflow_serving/model_servers/server_core.h#L112

[2] https://github.com/tensorflow/serving/blob/master/tensorflow_serving/core/caching_manager.h