I am trying to write client code to talk to a tensorflow server. I need the golang compiled protobufs for tensorflow
and tensorflow_serving
. These are not easy to come by, I managed to do so through this. Basically, using buf to generate them. Here is the buf yaml:
version: v1
managed:
enabled: true
optimize_for: CODE_SIZE
# Go
go_package_prefix:
default: "some/path"
plugins:
- plugin: buf.build/protocolbuffers/go
out: gen/proto/go
This runs successfully, but running the application logs:
package command-line-arguments
imports my-package/internal/infer
imports my-package/internal/infer/tensorflow_serving/apis
imports my-package/internal/infer/tensorflow/core/protobuf
imports my-package/internal/infer/tensorflow/compiler/xla/stream_executor
imports my-package/internal/infer/tensorflow/compiler/xla
imports my-package/internal/infer/tensorflow/compiler/xla/service
imports my-package/internal/infer/tensorflow/compiler/xla: import cycle not allowed
Note that everything under tensorflow
and tensorflow_serving
is directly compiled from the original repositories.
It is surprising to me that something as widely used as tensorflow should have an import cycle, but maybe it does. How can I resolve this?