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()) <<
"," <<
to_string(ps_info.pad_top()) <<
","
49 layer_data[
"pad"] = padding.str();
52 std::ostringstream stride;
53 stride <<
"[" <<
to_string(ps_info.stride().first) <<
"," <<
to_string(ps_info.stride().second) <<
"]";
55 layer_data[
"stride"] = stride.str();
59 layer_data[
"dilation"] =
"[1,1]";
63 std::string bias_enabled = node.input(2) ==
nullptr ?
"0" :
"1";
64 layer_data[
"bias_enabled"] = bias_enabled;
68 if (layer_data.count(
"input_shape1"))
70 layer_data[
"weights_shape"] = layer_data[
"input_shape1"];
71 layer_data.erase(
"input_shape1");
73 if (layer_data.count(
"input_shape2"))
75 layer_data[
"bias_shape"] = layer_data[
"input_shape2"];
76 layer_data.erase(
"input_shape2");
83 std::ostringstream method;
84 method << node.convolution_method();
85 layer_data[
"convolution_method"] = method.str();
92 for (
size_t tensor_no = 0; tensor_no < node.num_inputs(); ++tensor_no)
95 if (node.input(tensor_no) !=
nullptr)
97 layer_data[
"input_shape" +
to_string(tensor_no)] =
98 "[" +
to_string(node.input(tensor_no)->desc().shape) +
"]";
102 if (node.output(0) !=
nullptr)
104 layer_data[
"output_shape0"] =
"[" +
to_string(node.output(0)->desc().shape) +
"]";
112 add_generic_layer_data<ConvolutionLayerNode>(_layer_data, n);
113 add_convolution_layer_data<ConvolutionLayerNode>(_layer_data, n);
114 add_convolution_layer_method<ConvolutionLayerNode>(_layer_data, n);
120 add_generic_layer_data<DepthwiseConvolutionLayerNode>(_layer_data, n);
121 add_convolution_layer_data<DepthwiseConvolutionLayerNode>(_layer_data, n);
127 add_generic_layer_data<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
128 add_convolution_layer_data<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
129 add_convolution_layer_method<FusedConvolutionBatchNormalizationNode>(_layer_data, n);
135 add_generic_layer_data<FusedDepthwiseConvolutionBatchNormalizationNode>(_layer_data, n);
136 add_convolution_layer_data<FusedDepthwiseConvolutionBatchNormalizationNode>(_layer_data, n);
148 add_generic_layer_data<INode>(_layer_data, n);