24 int32_t padding_left, int32_t padding_right, int32_t padding_top,
25 int32_t padding_bottom, int32_t stride_width, int32_t stride_height,
28 ASSERT(input.type == filter.type);
29 if (input.type == OperandType::TENSOR_QUANT8_ASYMM)
31 ASSERT(bias.type == OperandType::TENSOR_INT32);
35 ASSERT(input.type == bias.type);
50 uint32_t outWidth =
computeOutSize(width, filterWidth, stride_width, padding_left, padding_right);
52 computeOutSize(height, filterHeight, stride_height, padding_top, padding_bottom);
54 output->type = input.type;
55 output->dimensions = {batches, outHeight, outWidth, channels_out};
uint32_t computeOutSize(uint32_t imageSize, uint32_t filterSize, uint32_t stride, uint32_t paddingHead, uint32_t paddingTail)
bool depthwiseConvPrepare(const Shape &input, const Shape &filter, const Shape &bias, int32_t padding_left, int32_t padding_right, int32_t padding_top, int32_t padding_bottom, int32_t stride_width, int32_t stride_height, Shape *output)