40 PadStrideInfo ps_info = node.convolution_info();
41 DataLayout layout = node.output(0)->desc().layout;
43 layer_data[
"data_layout"] =
to_string(layout);
45 std::ostringstream padding;
46 padding <<
"[" <<
to_string(ps_info.pad_left()) <<
"," 51 layer_data[
"pad"] = padding.str();
54 std::ostringstream stride;
55 stride <<
"[" <<
to_string(ps_info.stride().first) <<
"," 56 <<
to_string(ps_info.stride().second) <<
"]";
58 layer_data[
"stride"] = stride.str();
62 layer_data[
"dilation"] =
"[1,1]";
66 std::string bias_enabled = node.input(2) ==
nullptr ?
"0" :
"1";
67 layer_data[
"bias_enabled"] = bias_enabled;
71 if(layer_data.count(
"input_shape1"))
73 layer_data[
"weights_shape"] = layer_data[
"input_shape1"];
74 layer_data.erase(
"input_shape1");
76 if(layer_data.count(
"input_shape2"))
78 layer_data[
"bias_shape"] = layer_data[
"input_shape2"];
79 layer_data.erase(
"input_shape2");
86 std::ostringstream method;
87 method << node.convolution_method();
88 layer_data[
"convolution_method"] = method.str();
95 for(
size_t tensor_no = 0; tensor_no < node.num_inputs(); ++tensor_no)
98 if(node.input(tensor_no) !=
nullptr)
100 layer_data[
"input_shape" +
to_string(tensor_no)] =
"[" +
to_string(node.input(tensor_no)->desc().shape) +
"]";
104 if(node.output(0) !=
nullptr)
106 layer_data[
"output_shape0"] =
"[" +
to_string(node.output(0)->desc().shape) +
"]";
114 add_generic_layer_data<ConvolutionLayerNode>(_layer_data, n);
115 add_convolution_layer_data<ConvolutionLayerNode>(_layer_data, n);
116 add_convolution_layer_method<ConvolutionLayerNode>(_layer_data, n);
122 add_generic_layer_data<DepthwiseConvolutionLayerNode>(_layer_data, n);
123 add_convolution_layer_data<DepthwiseConvolutionLayerNode>(_layer_data, n);
129 add_generic_layer_data<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
130 add_convolution_layer_data<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
131 add_convolution_layer_method<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
137 add_generic_layer_data<FusedDepthwiseConvolutionBatchNormalizationNode>(_layer_data, n);
138 add_convolution_layer_data<FusedDepthwiseConvolutionBatchNormalizationNode>(_layer_data, n);
150 add_generic_layer_data<INode>(_layer_data, n);
void default_visit(INode &n) override
Function to be overloaded by the client and implement default behavior for the non-overloaded visitor...
Fused Depthwise Convolution Batch Normalization node.
void visit(ConvolutionLayerNode &n) override
Visit ConvolutionLayerNode.
const LayerData & layer_data() const
Copyright (c) 2017-2021 Arm Limited.
Batch Normalization node.
std::string to_string(const ROIPoolingLayerInfo &pool_info)
Formatted output of the ROIPoolingInfo type.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
std::map< std::string, std::string > LayerData
Depthwise Convolution Layer node.
DataLayout
[DataLayout enum definition]