我想在Scala(或Java)中编写一个客户端来获取tensorflow服务中的模型状态。在阅读了目录中的所有原型文件: / serving / tensorflow_serving / apis 后,我想到了这两个文件: get_model_status.proto 和< strong> model_service.proto 为我提供必要的api使用。但我的简单测试返回错误: &#34;线程中的异常&#34; main&#34; io.grpc.StatusRuntimeException:UNIMPLEMENTED&#34; 。以下是代码段:
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)
错误&#34; UNIMPLEMENTED&#34;似乎建议我必须定义一个新的签名,以添加到元图处理请求并返回响应,这让我感到困惑,因为这个新签名不再是我想要检查的模型。我的问题是如何使用这个getModelStatus
函数?任何建议都表示赞赏!
答案 0 :(得分:1)
回答我自己的问题:
上面的代码是正确的;
无需定义额外签名,只需使用正常导出的模型;
使用tf_serving版本&gt; = 1.5解决了这个问题。
&#34; UNIMPLEMENTED&#34;当我使用版本1.4的tf_serving二进制文件时出现错误。
有关此过程的更多详细信息,您可以在 /serving/tensorflow_serving/model_servers/tensorflow_model_server_test.py <中查看官方python函数 testGetModelStatus / em>