java - 如何获取 tensorflow 服务中的模型状态

标签 java scala tensorflow tensorflow-serving

我正在尝试用 Scala(或 Java)编写一个客户端来获取 tensorflow 服务中的模型状态。阅读完目录中的所有 proto 文件后:/serving/tensorflow_serving/apis,我认为这两个文件:get_model_status.proto 和 < strong>model_service.proto提供了必要的api供我使用。但我的简单测试返回了一个错误:“线程“main”io.grpc.StatusRuntimeException 中出现异常:UNIMPLMENTED”。这是代码片段:

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)

错误“UNIMPLMENTED”似乎表明我必须定义一个新签名添加到元图中来处理请求并返回响应,这让我很困惑,因为这个新签名不是我想再检查的模型。我的问题是如何使用这个 getModelStatus 函数?如有任何建议,我们将不胜感激!

最佳答案

回答我自己的问题:

  1. 以上代码正确;

  2. 无需定义额外的签名,只需使用正常导出的模型即可;

  3. 使用 tf_serving 版本 >= 1.5 可以解决此问题。

当我使用 1.4 版本的 tf_serving 二进制文件时,出现“UNIMPLMENTED”错误。

有关此过程的更多详细信息,您可以查看 /serving/tensorflow_serving/model_servers/tensorflow_model_server_test.py< 中的官方 python 函数 testGetModelStatus/em>

关于java - 如何获取 tensorflow 服务中的模型状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49051968/

相关文章:

java - Java 可以读取基于 Adob​​e Flash 的游戏中发生的情况吗?

java - 更改 JMenuBar 的字体

按钮的 JavaFX 定位

tensorflow - 使用 Keras model.fit_generator 时 CUDA|RAM 内存不足

python - TensorFlow tf.data.Dataset 和分桶

python - 将 Pandas 数据框转换为列表列表以输入到 RNN

java - 我无法按行打印数组,只能打印一个长字符串

scala - 如何从打包中排除不必要的非托管依赖项?

java - Scala PlayFramework 正在等待源更改。但没有回应

Scala:具有复杂结构的树插入尾递归