1、maven依赖:
<dependency>
<groupId>com.yesup.oss</groupId>
<artifactId>tensorflow-client</artifactId>
<version>1.4-2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>2.0.7.Final</version>
</dependency>
2、经验分享:
- 特征维度值的设置需要和离线计算模型保持同步处理,否则会产生维度不一致的报错信息;
- 特征填充的时候,需要和离线计算模型特征的数量一致,否则会产生特征数不匹配的错误;
- 组织特征请求采用的是TensorProto.Builder对象,提交构建特征采用的TensorProto对象;
- tf-serving返回的应答信息中只有评分而没有对应的ID,需要根据构建顺序寻找对应关系;
- tf-serving客户端访问时设置的模型名称和模型签名和离线计算模型保持一致;
3、DEMO演示:
- 模型文件:解压缩到指定路径下,tf-serving启动时入参指向该路径,目录名称采用数字,数字最大的将被tf加载。
- tf-serving的搭建详见:docker与tf-server,强烈建议采用docker方式,省事省力省心,效率与成本相比可以忽略;
- 客户端代码:启动tf-serving,修改服务端地址和端口,统一模型字段、个数、名称以后即可执行看到返回结果;