0

我正在尝试为对 Tensorflow Serving 的 GRPC 调用编译 pb 文件(在 php 中,但问题与 PHP 无关)

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

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

但是,在正常设置中,tensorflow 和 tensorflow serving 不位于具有公共文件夹的层次结构中,两个导入可以从该文件夹中一起工作。

假设将 proto 文件编译为 grpc 的 pb 文件会保持层次结构,如果不将 tensorflow 服务定位在 /tensorflow/ 下,它就无法工作。我在这里想念什么?

为 grpc 客户端编译 pb 文件的最佳实践是什么?

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

4

1 回答 1

1

我对 tensorflow 一无所知,但我从另一个 protobuf 创建的角度来解决这个问题。在这里https://github.com/tensorflow/serving我同时看到了tensorflow_serving一个子模块 tensorflow,它是您所需依赖项的根(即它有另一个tensorflow子文件夹)。所以我猜你要么错过了一些配置步骤,这会将文件夹复制到正确的相对位置,要么你正在运行一个不完整/不正确的protoc命令行,即你错过了一些-I <path>

于 2017-01-09T21:12:11.030 回答