In the Tensorflow source, I see,
REGISTER_OP("BroadcastGradientArgs") .Input("s0: T") .Input("s1: T") .Output("r0: T") .Output("r1: T") .Attr("T: {int32, int64} = DT_INT32") .SetShapeFn([](InferenceContext* c) { ... uninteresting details ... }) .Doc(R"doc( Return the reduction indices for computing gradients of s0 op s1 with broadcast. This is typically used by gradient computations for a broadcasting operation. )doc");
In Python, I can do the following,
>>> from tensorflow.python.ops import gen_array_ops >>> gen_array_ops._InitOpDefLibrary()._ops['BroadcastGradientArgs'].op_def name: "BroadcastGradientArgs" input_arg { name: "s0" type_attr: "T" } ... more stuff ... attr { name: "T" type: "type" ... uninteresting details ... }
Note that I am getting in Python the Protobuf definition (I removed some for brevity) of the TF operation. I want to get the documentation section of the definition that I see in the C++ code. How do I get it?
1 Answers
Answers 1
That was painful. You need to patch TF and Protobuf
https://github.com/tensorflow/tensorflow/issues/8207 https://github.com/google/protobuf/issues/2798
And then you need to additionally comment out the line, https://github.com/tensorflow/tensorflow/blob/a3e636c0f561e2ac6d9f8a0044fbe09acb003803/tensorflow/python/framework/python_op_gen.cc#L708
Rebuilding and running gave,
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package && \ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg && \ sudo pip install --upgrade /tmp/tensorflow_pkg/tensorflow-1.0.0*.whl
And executing my test,
$ python -c "from tensorflow.python.ops import gen_array_ops; print gen_array_ops._InitOpDefLibrary()._ops['BroadcastGradientArgs'].op_def" name: "BroadcastGradientArgs" input_arg { name: "s0" type_attr: "T" } input_arg { name: "s1" type_attr: "T" } output_arg { name: "r0" type_attr: "T" } output_arg { name: "r1" type_attr: "T" } attr { name: "T" type: "type" default_value { type: DT_INT32 } allowed_values { list { type: DT_INT32 type: DT_INT64 } } } summary: "Return the reduction indices for computing gradients of s0 op s1 with broadcast." description: "This is typically used by gradient computations for a broadcasting operation."
That took way too much Regex ...
0 comments:
Post a Comment