如何在不卸载先前模型的情况下,在tf_serving中运行时添加多个模型?

2024-03-28 19:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用以下代码在tensorflow_model_server中添加新模型:

from tensorflow_serving.apis import model_service_pb2_grpc
from tensorflow_serving.apis import model_management_pb2
from tensorflow_serving.config import model_server_config_pb2

import grpc

def add_model_config(host, name, base_path, model_platform):
  channel = grpc.insecure_channel(host)
  stub = model_service_pb2_grpc.ModelServiceStub(channel)
  request = model_management_pb2.ReloadConfigRequest()
  model_server_config = model_server_config_pb2.ModelServerConfig()

  #Create a config to add to the list of served models
  config_list = model_server_config_pb2.ModelConfigList()
  one_config = config_list.config.add()
  one_config.name= name
  one_config.base_path=base_path
  one_config.model_platform=model_platform

  model_server_config.model_config_list.CopyFrom(config_list)

  request.config.CopyFrom(model_server_config)

  print(request.IsInitialized())
  print(request.ListFields())

  response = stub.HandleReloadConfigRequest(request,10)
  if response.status.error_code == 0:
      print("Reload sucessfully")
      return True
  else:
      print("Reload failed!")
      print(response.status.error_code)
      print(response.status.error_message)
      return False

但是每当我尝试执行它时,服务器就会卸载所有以前的模型。是否可以继续为所有型号提供服务,然后添加新型号?你知道吗


Tags: fromimportaddconfiggrpcmodelserverresponse
1条回答
网友
1楼 · 发布于 2024-03-28 19:50:52

没有简单的方法来添加一个新模型,同时保持以前的模型已经加载。你知道吗

我一直在做的是始终将最后一个模型配置列表保存在磁盘上,当我出于任何原因(添加、删除或更新)需要刷新模型时,我从磁盘读取该配置文件,并进行适当的修改,使用完整的配置列表调用handleLoadConfigRequest(),然后再次将其保存到磁盘。你知道吗

磁盘上的文件(比如/models/models.config)成为加载模型的权威记录tf.发球在任何给定的时间。这样你就可以从痛苦中恢复过来tf.发球重新启动,并有舒适的知道,它将加载正确的模型。在服务器启动期间指定配置文件的选项是 model_config_file /models/models.config。你知道吗

相关问题 更多 >