首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于Tensorflow-Serving中的新版本,有没有针对新模型的“加载策略”?

对于Tensorflow-Serving中的新版本,有没有针对新模型的“加载策略”?
EN

Stack Overflow用户
提问于 2019-08-01 17:43:50
回答 1查看 109关注 0票数 0

我在官方网站上读到,我们可以设置版本策略,为新版本保留资源或可丢弃,但我没有发现任何关于加载新模型的内容。我在Docker中使用tensoflow serving,我想知道它的行为,例如,如果我分配的内存已满,我试图加载一个新的内存。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 02:46:53

您可以通过简单地将新版本添加到文件夹来加载同一模型的新版本,并且您可以通过一些额外的工作来加载新模型。

添加新版本的模型

要加载同一模型的新版本,您需要具有文件夹层次结构,并使用递增的数字将新版本添加到模型文件夹中。假设你有这样的文件夹结构;

代码语言:javascript
复制
C:/mymodelfolder/
    L->resnet-model
      L->1
    L->nlp-model
      L->1

如果您希望加载nlp- v2的模型,您只需将模型的v2放在一个名为2的文件夹中,如下所示

代码语言:javascript
复制
C:/mymodelfolder/
   ...
    L->nlp-model
      L->1
      L->2  //new model is here

在一秒钟左右的时间内,tf-serving应该会发现并加载该模型(您可以稍后丢弃其中一个模型,或者以A/B方式为这两个模型提供正确的配置)。

添加要提供服务的新型号

如果您希望在不重新启动tf-serving的情况下加载另一个模型,则首先需要将该模型复制到另一个文件夹,然后使用包含所有要服务的模型的ReloadConfigRequest协议将gRPC请求发送到应用程序公开的端口。通过这种方式,您可以动态添加/删除/指定版本。

还有一个标记docker --model_config_file_poll_wait_seconds,它告诉tf-serving监听model.config文件上的更改,但我无法在docker上的最新版本中使用它。

有关官方文档和更多信息,请访问https://www.tensorflow.org/tfx/serving/serving_config#model_server_config_details

内存行为

我想知道是什么行为,例如,如果我分配的内存已满,我试图加载一个新的内存。

将模型更新到新版本时,除非将它们配置为一起使用,否则会卸载以前的模型并加载新模型。因此,如果第一个模型的大小与第二个模型的大小不同,它将反映到内存中。

如果你加载的模型会超出应用程序/容器/环境的内存分配,那么不幸的是,在当前版本的应用程序中,它会自动关闭。但在这篇文章中有一段冗长的谈话和一些变通办法,你可能想看看:https://github.com/tensorflow/serving/issues/1215

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57306197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档