{
ANDROID_NN_CONV_PARAMETERS(float)
+ const ::tflite::Dims<4> &kernel_dim = convertShapeToDims(_kernelShape);
+ const int kernel_width = ArraySize(kernel_dim, 1);
+ const int kernel_height = ArraySize(kernel_dim, 2);
+ const bool need_im2col =
+ _strideWidth != 1 || _strideHeight != 1 || kernel_width != 1 || kernel_height != 1;
+
+ float *im2colDataToPass = nullptr;
+ if (need_im2col)
+ {
+ im2colDataToPass = im2colData;
+ }
+
float output_activation_min, output_activation_max;
CalculateActivationRangeFloat(_activation, &output_activation_min, &output_activation_max);
int32_t dilationWidthFactor = 1, dilationHeightFactor = 1;
reinterpret_cast<const float *>(_biasData), convertShapeToDims(_biasShape), _strideWidth,
_strideHeight, dilationWidthFactor, dilationHeightFactor, paddingWidth, paddingHeight,
output_activation_min, output_activation_max, reinterpret_cast<float *>(_outputData),
- convertShapeToDims(_outputShape), im2colData, im2colDim);
+ convertShapeToDims(_outputShape), im2colDataToPass, im2colDim);
return true;
}