52 const uint32_t paddingRight,
const uint32_t paddingTop,
53 const uint32_t paddingBottom,
const uint32_t strideW,
const uint32_t strideH,
54 const uint32_t multiplier,
const uint32_t dilationWidth,
56 IPortableTensor *output,
const std::shared_ptr<ExternalContext> &external_context);
63 void prepareQ8uPerChannel();
64 void prepareQ8iHybridPerChannel();
65 void ensureQ8iHybridPerChannel();
93 std::shared_ptr<ExternalContext> _external_context;
95 bool _prepared{
false};
98 std::vector<int32_t> _per_channel_output_multiplier;
99 std::vector<int> _per_channel_output_shift;
102 bool _is_hybrid{
false};
103 std::vector<int8_t> _input_quantized;
104 std::vector<float> _input_scaling_factors;
105 std::vector<int32_t> _input_offsets;
void configure(const IPortableTensor *input, const IPortableTensor *kernel, const IPortableTensor *bias, const uint32_t paddingLeft, const uint32_t paddingRight, const uint32_t paddingTop, const uint32_t paddingBottom, const uint32_t strideW, const uint32_t strideH, const uint32_t multiplier, const uint32_t dilationWidth, const uint32_t dilationHeight, const ir::Activation activation, IPortableTensor *output, const std::shared_ptr< ExternalContext > &external_context)