将模型热加载到tensorflow服务容器中

将模型热加载到tensorflow服务容器中,tensorflow,tensorflow-serving,Tensorflow,Tensorflow Serving,我知道如何将模型加载到容器中,也知道我们可以创建一个静态配置文件,当我们运行tensorflow服务容器时,将其传递给容器,然后使用其中一个配置文件中的模型,但我想知道是否有办法热加载一个全新的模型(不是以前模型的更新版本)放入运行的tensorflow服务容器中。我的意思是,我们使用模型A运行容器,然后我们将模型B加载到容器中并使用它,我们可以这样做吗?如果是,怎么做?您可以 首先,您需要将新模型文件复制到启动tf服务时指定的model\u base\u path,以便服务器可以看到新模型。目

我知道如何将模型加载到容器中,也知道我们可以创建一个静态配置文件,当我们运行tensorflow服务容器时,将其传递给容器,然后使用其中一个配置文件中的模型,但我想知道是否有办法热加载一个全新的模型(不是以前模型的更新版本)放入运行的tensorflow服务容器中。我的意思是,我们使用模型A运行容器,然后我们将模型B加载到容器中并使用它,我们可以这样做吗?如果是,怎么做?

您可以

首先,您需要将新模型文件复制到启动tf服务时指定的
model\u base\u path
,以便服务器可以看到新模型。目录布局通常为:$MODEL_BASE_PATH/$MODEL_a/$version_a/*和$MODEL_BASE_PATH/$MODEL_b/$version_b/*

然后,您需要使用一个新的model_config_文件刷新tf serve,该文件包含新模型的条目。看见要使服务器接受新配置,有两种方法:

  • 保存新的配置文件并重新启动tf服务器
  • 在不重新启动tf服务的情况下动态重新加载新模型配置。该服务在中定义为HandleroAdConfigRequest,但该服务似乎不支持它,因此您需要依赖gRPC API。可悲的是,这项计划似乎没有得到实施。我设法从protobuf文件生成Java客户机代码,但它相当复杂。一个示例解释了如何生成用于执行gRPC推断的Java客户机代码,而执行HandleroAdConfigRequest()则非常类似

  • 更正-Python客户端API似乎确实支持HandleroAdConfigRequest(),下面是另一篇文章中的代码示例: