@@ -67,9 +67,25 @@ expected<Unit, std::string> ModelBuilder::AddLayer_CONV_2D_Impl(
6767 bias_idx_val = operand_indexes_.at (bias.value ());
6868 }
6969 input_indexes.push_back (bias_idx_val);
70- AddScalarOperands (input_indexes, padding_left, padding_right, padding_top,
71- padding_bottom, stride_x, stride_y, fuse_code, dilation_x,
72- dilation_y);
70+ AddScalarOperands (input_indexes, padding_left);
71+ AddScalarOperands (input_indexes, padding_right);
72+ AddScalarOperands (input_indexes, padding_top);
73+ AddScalarOperands (input_indexes, padding_bottom);
74+ AddScalarOperands (input_indexes, stride_x);
75+ AddScalarOperands (input_indexes, stride_y);
76+ AddScalarOperands (input_indexes, fuse_code);
77+
78+ if (android_api_level () > 29 ) {
79+ AddScalarOperands (input_indexes, nchw);
80+ }
81+
82+ if (android_api_level () > 29 ) {
83+ AddScalarOperands (input_indexes, dilation_x);
84+ }
85+
86+ if (android_api_level () > 29 ) {
87+ AddScalarOperands (input_indexes, dilation_y);
88+ }
7389 shaper_.Conv (input, weight, padding_left, padding_right, padding_top,
7490 padding_bottom, stride_x, stride_y, nchw, dilation_x,
7591 dilation_y, output);
@@ -95,9 +111,15 @@ expected<Unit, std::string> ModelBuilder::AddLayer_AVERAGE_POOL_2D(
95111 imm_blob_inputs_.insert (input);
96112 const auto input_idx = operand_indexes_.at (input);
97113 input_indexes.push_back (input_idx);
98- AddScalarOperands (input_indexes, padding_left, padding_right, padding_top,
99- padding_bottom, stride_x, stride_y, kernel_width,
100- kernel_height, fuse_code);
114+ AddScalarOperands (input_indexes, padding_left);
115+ AddScalarOperands (input_indexes, padding_right);
116+ AddScalarOperands (input_indexes, padding_top);
117+ AddScalarOperands (input_indexes, padding_bottom);
118+ AddScalarOperands (input_indexes, stride_x);
119+ AddScalarOperands (input_indexes, stride_y);
120+ AddScalarOperands (input_indexes, kernel_width);
121+ AddScalarOperands (input_indexes, kernel_height);
122+ AddScalarOperands (input_indexes, fuse_code);
101123 shaper_.Pool (input, padding_left, padding_right, padding_top,
102124 padding_bottom, stride_x, stride_y, kernel_width,
103125 kernel_height, output);
@@ -123,9 +145,15 @@ expected<Unit, std::string> ModelBuilder::AddLayer_MAX_POOL_2D(
123145 imm_blob_inputs_.insert (input);
124146 const auto input_idx = operand_indexes_.at (input);
125147 input_indexes.push_back (input_idx);
126- AddScalarOperands (input_indexes, padding_left, padding_right, padding_top,
127- padding_bottom, stride_x, stride_y, kernel_width,
128- kernel_height, fuse_code);
148+ AddScalarOperands (input_indexes, padding_left);
149+ AddScalarOperands (input_indexes, padding_right);
150+ AddScalarOperands (input_indexes, padding_top);
151+ AddScalarOperands (input_indexes, padding_bottom);
152+ AddScalarOperands (input_indexes, stride_x);
153+ AddScalarOperands (input_indexes, stride_y);
154+ AddScalarOperands (input_indexes, kernel_width);
155+ AddScalarOperands (input_indexes, kernel_height);
156+ AddScalarOperands (input_indexes, fuse_code);
129157 shaper_.Pool (input, padding_left, padding_right, padding_top,
130158 padding_bottom, stride_x, stride_y, kernel_width,
131159 kernel_height, output);
@@ -315,9 +343,14 @@ expected<Unit, std::string> ModelBuilder::AddLayer_DEPTHWISE_CONV_2D(
315343 bias_idx_val = operand_indexes_.at (bias.value ());
316344 }
317345 input_indexes.push_back (bias_idx_val);
318- AddScalarOperands (input_indexes, padding_left, padding_right, padding_top,
319- padding_bottom, stride_x, stride_y, depth_multiplier,
320- fuse_code);
346+ AddScalarOperands (input_indexes, padding_left);
347+ AddScalarOperands (input_indexes, padding_right);
348+ AddScalarOperands (input_indexes, padding_top);
349+ AddScalarOperands (input_indexes, padding_bottom);
350+ AddScalarOperands (input_indexes, stride_x);
351+ AddScalarOperands (input_indexes, stride_y);
352+ AddScalarOperands (input_indexes, depth_multiplier);
353+ AddScalarOperands (input_indexes, fuse_code);
321354 shaper_.DepthwiseConv (input, weight, padding_left, padding_right,
322355 padding_top, padding_bottom, stride_x, stride_y,
323356 output);
@@ -406,7 +439,9 @@ expected<Unit, std::string> ModelBuilder::AddLayer_STRIDED_SLICE(
406439 " input_strides_of_" + output, &strides[0 ],
407440 {Type::TENSOR_INT32, Shape{static_cast <uint32_t >(strides.size ())}});
408441 input_indexes.push_back (strides_idx);
409- AddScalarOperands (input_indexes, begin_mask, end_mask, shrink_axis_mask);
442+ AddScalarOperands (input_indexes, begin_mask);
443+ AddScalarOperands (input_indexes, end_mask);
444+ AddScalarOperands (input_indexes, shrink_axis_mask);
410445 shaper_.StridedSlice (input, starts, ends, strides, begin_mask, end_mask,
411446 shrink_axis_mask, output);
412447 const OperandType operand_type =
@@ -472,7 +507,10 @@ expected<Unit, std::string> ModelBuilder::AddLayer_LOCAL_RESPONSE_NORMALIZATION(
472507 imm_blob_inputs_.insert (input);
473508 const auto input_idx = operand_indexes_.at (input);
474509 input_indexes.push_back (input_idx);
475- AddScalarOperands (input_indexes, radius, bias, alpha, beta);
510+ AddScalarOperands (input_indexes, radius);
511+ AddScalarOperands (input_indexes, bias);
512+ AddScalarOperands (input_indexes, alpha);
513+ AddScalarOperands (input_indexes, beta);
476514 shaper_.Identity (input, output);
477515 const OperandType operand_type =
478516 GetOperandType (operand_types_.at (input).type , shaper_[output]);
@@ -880,16 +918,3 @@ ModelBuilder::IndexSeq ModelBuilder::AddOperation(
880918}
881919
882920} // namespace dnn
883-
884-
885-
886-
887-
888-
889-
890-
891-
892-
893-
894-
895-
0 commit comments