MCPcopy Create free account
hub / github.com/alibaba/MNN / _Deconv

Function _Deconv

test/op/DeconvolutionTest.cpp:85–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85VARP _Deconv(std::vector<int8_t>&& weight, std::vector<float>&& bias, std::vector<float>&& scale, VARP x, INTS channel, INTS kernelSize,
86 PaddingMode pad, INTS stride, INTS dilate, int group, INTS pads, bool relu, bool relu6, int8_t inputZeroPoint, int8_t outputZeroPoint,
87 int8_t maxValue, int8_t minValue) {
88 std::unique_ptr<OpT> convOp(new OpT);
89 convOp->type = OpType_Deconvolution;
90 if (channel[0] == channel[1] && channel[0] == group) {
91 convOp->type = OpType_DeconvolutionDepthwise;
92 }
93 convOp->main.type = OpParameter_Convolution2D;
94 convOp->main.value = new Convolution2DT;
95 auto conv2D = convOp->main.AsConvolution2D();
96 conv2D->common.reset(new Convolution2DCommonT);
97 conv2D->common->padMode = _convertPadMode(pad);
98 if (pads.size() == 2) {
99 conv2D->common->padX = pads[0];
100 conv2D->common->padY = pads[1];
101 } else {
102 conv2D->common->pads = std::move(pads);
103 }
104 conv2D->common->strideX = stride[0];
105 conv2D->common->strideY = stride[1];
106 conv2D->common->group = group;
107 conv2D->common->outputCount = channel[1];
108 conv2D->common->inputCount = channel[0];
109 conv2D->common->dilateX = dilate[0];
110 conv2D->common->dilateY = dilate[1];
111 conv2D->common->kernelX = kernelSize[0];
112 conv2D->common->kernelY = kernelSize[1];
113 conv2D->common->relu6 = relu6;
114 conv2D->common->relu = relu;
115 conv2D->quanParameter = IDSTEncoder::encode(nullptr, scale, channel[1], channel[0] * kernelSize[0] * kernelSize[1], false, weight.data(), -128);
116 conv2D->symmetricQuan.reset(new QuantizedFloatParamT);
117 conv2D->bias = std::move(bias);
118 return (Variable::create(Expr::create(convOp.get(), {x})));
119}
120
121class DeconvolutionCommonTest : public MNNTestCase {
122public:

Callers 6

testOnBackendMethod · 0.70
testOnBackendMethod · 0.70
testMethod · 0.70
testMethod · 0.70
ConvTransposeMethod · 0.50
runMethod · 0.50

Calls 8

encodeFunction · 0.85
AsConvolution2DMethod · 0.80
_convertPadModeFunction · 0.70
createFunction · 0.50
resetMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected