1 //
2 //  ConvolutionGroup.hpp
3 //  MNN
4 //
5 //  Created by MNN on 2018/08/06.
6 //  Copyright © 2018, Alibaba Group Holding Limited
7 //
8 
9 #ifndef ConvolutionGroupInt8_hpp
10 #define ConvolutionGroupInt8_hpp
11 
12 #include "backend/cpu/compute/ConvolutionIntFactory.hpp"
13 
14 namespace MNN {
15 class ConvolutionGroup : public Execution {
16 public:
17     ConvolutionGroup(Backend *b, const std::vector<std::shared_ptr<Execution>> &subConvolution);
18     virtual ~ConvolutionGroup() = default;
19 
20     virtual ErrorCode onResize(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override;
21 
22     virtual ErrorCode onExecute(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override;
23 
24 private:
25     std::unique_ptr<Tensor> mInputRaw;
26     std::unique_ptr<Tensor> mOutputRaw;
27 
28     std::unique_ptr<Tensor> mInputUnit;
29     std::unique_ptr<Tensor> mOutputUnit;
30 
31     std::vector<Tensor *> mInputUnitWrap;
32     std::vector<Tensor *> mOutputUnitWrap;
33     std::vector<std::shared_ptr<Execution>> mSubConvolution;
34 };
35 } // namespace MNN
36 
37 #endif /* ConvolutionGroupInt8_hpp */
38