获取 Tensorflow Serving 中公开模型的信息

问题描述 投票:0回答:4

一旦我有一个服务多个模型的 TF 服务器,有没有办法查询这样的服务器以了解服务哪些模型?

是否有可能获得有关每个此类模型的信息,例如名称、接口,甚至更重要的是,服务器上存在哪些版本的模型并可能提供服务?

tensorflow tensorflow-serving
4个回答
9
投票

确实很难找到有关此的一些信息,但有可能获得一些模型元数据。

request = get_model_metadata_pb2.GetModelMetadataRequest()
request.model_spec.name = 'your_model_name'
request.metadata_field.append("signature_def")
response = stub.GetModelMetadata(request, 10)
    
print(response.model_spec.version.value)
print(response.metadata['signature_def'])

希望有帮助。

更新

可以从 REST API 获取这些信息。就拿

http://{serving_url}:8501/v1/models/{your_model_name}/metadata

结果为json,您可以轻松找到模型规范和签名定义。


0
投票

要继续解码过程,请遵循 Tyler 的方法并将消息转换为 JSON,或者更原生地解包到 SignatureDefMap 并从那里获取它

signature_def_map = get_model_metadata_pb2.SignatureDefMap()
response.metadata['signature_def'].Unpack(signature_def_map)
print(signature_def_map.signature_def.keys())

0
投票

要使用 REST API 请求数据,对于所提供的特定模型的附加数据,您可以发出(通过curl、Postman 等):

GET http://host:port/v1/models/${MODEL_NAME}
GET http://host:port/v1/models/${MODEL_NAME}/metadata

了解更多信息,请查看 https://www.tensorflow.org/tfx/serving/api_rest


0
投票

从代码来看,http 和 grpc 都不支持列出所有已部署的模型:

https://github.com/tensorflow/serving/tree/master/tensorflow_serving/model_servers

© www.soinside.com 2019 - 2024. All rights reserved.