我想在Scala(或Java)中编写一个客户端来获取tensorflow服务中的模型状态。在阅读目录中的所有proto文件后:/ serve / tensorflow_serving / apis,我认为这两个文件:get_model_status.proto和model_service.proto为我提供了必要的api。但我的简单测试返回错误:“线程中的异常”主“io.grpc.StatusRuntimeException:UNIMPLEMENTED”。这是代码片段:
val channel = ManagedChannelBuilder
.forAddress(host, port)
.usePlaintext(true)
.asInstanceOf[ManagedChannelBuilder[_]]
.build
val modelStub = tensorflow.serving.ModelServiceGrpc.newBlockingStub(channel)
val modelRequest = tensorflow.serving.GetModelStatus
.GetModelStatusRequest
.newBuilder
.setModelSpec(ModelSpec.newBuilder.setName("x").setSignatureName("x"))
.build
println(modelStub
.getModelStatus(modelRequest)
.getModelVersionStatusList
.asScala)
错误“UNIMPLEMENTED”似乎表明我必须定义一个新的签名以添加到元图处理请求并返回响应,这让我感到困惑,因为这个新签名不再是我想要检查的模型。我的问题是如何使用这个getModelStatus
功能?任何建议表示赞赏!
回答我自己的问题:
当我使用版本1.4的tf_serving二进制文件时出现“UNIMPLEMENTED”错误。
有关此过程的更多详细信息,您可以在/serving/tensorflow_serving/model_servers/tensorflow_model_server_test.py中查看官方python函数testGetModelStatus。