我正在根据有关how to define a new op的本教程阅读TensorFlow代码。
当我阅读以下snippet
REGISTER_OP("AvgPool")
.Input("value: T")
.Output("output: T")
.Attr("ksize: list(int) >= 4")
.Attr("strides: list(int) >= 4")
.Attr(GetPaddingAttrString())
.Attr(GetConvnetDataFormatAttrString()) // <== ???
.Attr("T: {half, bfloat16, float, double}")
.SetShapeFn(shape_inference::AvgPoolShape);
GetConvnetDataFormatAttrString
在tensorflow/core/util/tensor_format.cc
string GetConvnetDataFormatAttrString() {
return "data_format: { 'NHWC', 'NCHW' } = 'NHWC' ";
}
我不了解data_format: { 'NHWC', 'NCHW' } = 'NHWC'
的语法。好像是key: {set} = val
。但是到底是什么呢?