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");
、私は次のことを行うことができ、私はPythonでいるProtobuf定義を取得しています
>>> 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 ...
}
ノートを参照してください(私は削除しましたいくつかの簡潔さのために)TF操作の。私は、C++コードに書かれている定義のドキュメンテーションセクションを取得したいと思います。どうすれば入手できますか?
この情報(.Doc)はTFソースコードに存在しますが、Pythonラッパーを通してエクスポートされていないため、Pythonでは利用できません。 (ここでは)https://github.com/tensorflow/tensorflow/blob/a3e636c0f561e2ac6d9f8a0044fbe09acb003803/tensorflow/python/framework/python_op_gen.ccを見てください。これは、あなたのpythonで使う 'op_def'が生成される場所です。いくつかのコードをここに実装する必要があります。そうすれば、Pythonのドキュメンテーションにアクセスできます。 – Arash
ありがとうございます。 https://github.com/tensorflow/tensorflow/blob/a3e636c0f561e2ac6d9f8a0044fbe09acb003803/tensorflow/core/framework/op_def_util.cc#L684は、説明がOpDefから削除されているようです。これは本当ですか? https://github.com/tensorflow/tensorflow/blob/a3e636c0f561e2ac6d9f8a0044fbe09acb003803/tensorflow/python/framework/python_op_gen.cc#L708という行を削除しても、OpDefのドキュメントはProtobufに残っていますか? –
この行のコメントを解除すると、protobufに関する一連の問題が発生します。おそらくもっと良い方法があります。 https://github.com/google/protobuf/issues/2798 –