2017-01-09 81 views
0

我试图编译PB文件GRPC调用Tensorflow服务是不可能的原文件结构(在PHP,但问题不是PHP相关)tensorflow服务于GRPC接口

文件serving/tensorflow_serving/apis/predict.proto有:

import "tensorflow/core/framework/tensor.proto"; 
import "tensorflow_serving/apis/model.proto"; 

但是,在正常的设置中,张量流和张量流服务不位于具有两个导入可以一起工作的公用文件夹的层次结构中。

假设将原始文件编译为用于grpc的pb文件使其保持水平,如果没有在tensorflow /下定位tensorflow服务,它将无法工作。我在这里错过了什么?

为了编译grpc客户端的pb文件,最佳做法是什么?

另一个问题:如果创建了pb文件 - 它们包含具有相同hirarchy的导入,因此它将强制客户端上的相同文件夹结构?这违背了实体之间隔离和分离的GRPC的含义。

回答

1

我对张量流量一无所知,但我正在从一个接近问题的角度来看另一个原始设计创造的观点。这里https://github.com/tensorflow/serving我看到tensorflow_serving子模块tensorflow这是你想要的依赖关系的根(即它有另一个tensorflow子文件夹)。所以我猜你要么错过了一些配置步骤,这会将文件夹复制到正确的相对位置,或者您运行的命令行不完整/不正确protoc,即您缺少一些-I <path>

+0

Thanks Pavel!我没有注意到它!我想你是正确的。我正在使用一个没有这个文件夹的预置AMI。它可能没有正确构建。 – Nir

+0

其实上述将文件夹添加到正确位置的解决方案并不能解决问题。依赖关系仍然不匹配。 – Nir

+0

如果'tensorflow_serving/apis/model.proto'匹配,但'tensorflow/core/framework/tensor.proto'不匹配,假设您已经检出tensorflow子模块,它应该位于tensorflow_serving文件夹的旁边,然后尝试为'protoc'调用添加'-I。/ tensorflow' –