45 const uint32_t paddingRight,
const uint32_t paddingTop,
46 const uint32_t paddingBottom,
const uint32_t strideW,
const uint32_t strideH,
47 const uint32_t multiplier,
const uint32_t dilationWidth,
49 IPortableTensor *output,
const std::shared_ptr<ExternalContext> &external_context);
55 void prepareQ8uPerChannel();
56 void prepareQ8iHybridPerChannel();
57 void ensureQ8iHybridPerChannel();
81 std::shared_ptr<ExternalContext> _external_context;
83 bool _prepared{
false};
86 std::vector<int32_t> _per_channel_output_multiplier;
87 std::vector<int> _per_channel_output_shift;
90 bool _is_hybrid{
false};
91 std::vector<int8_t> _input_quantized;
92 std::vector<float> _input_scaling_factors;
93 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)