java通过gRPC整合tensorflow serving(之三)——使用java调用tfserving的模型
SORRY 本来打算上周末发的,一直有事拖延了一下。
上一篇我们讲完了如何安装tensorflow serving,并讲了如何编写脚本导出一个训练好的checkpoint模型文件,最后将模型部署到了tensorflow serving。
本篇我们继续讲述如何使用java调用刚刚部署好的模型。
首先打开我们第一篇中建好的Java项目。
第一步通过tensorflow serving的协议定义proto文件生成java stub
开头先说一下 其实这一步并非必要,因为已经有别人编译好的现成的tensorflow serving client可以使用,比如maven搜索一下tensorflow-serving-client。 但是我觉得还是有必要从头开始完整的演示一下,好了继续。
在我们使用bazel编译tensorflow serving之后,在tensorflow serving的目录tensorflow_serving/apis中就有定义api协议的proto文件, 我们拷贝这个api目录到我们项目的src/proto目录(如果没有这个目录,请参考本系列第一篇)。
之后我们就可以gradle build项目来编译proto文件了,不出意外肯定会报错,报proto文件中的import找不到文件,所以这里我们需要根据项目结构去修改一下报错的proto文件,基本就是开头几行的import,比如原来的
import "tensorflow/core/framework/tensor.proto"
改成
import "apis/tensor.proto";