From 033208e4f903a31bd1b55e26eef28942d1b79146 Mon Sep 17 00:00:00 2001 From: hjchen2 Date: Tue, 29 Jan 2019 16:25:14 +0800 Subject: [PATCH] Fix generic fusion conv bugs --- .../kernel/central-arm-func/conv_add_add_prelu_arm_func.h | 4 ++-- src/operators/kernel/central-arm-func/conv_add_arm_func.h | 3 ++- .../kernel/central-arm-func/conv_add_bn_relu_arm_func.h | 4 ++-- .../kernel/central-arm-func/conv_add_prelu_arm_func.h | 3 ++- .../kernel/central-arm-func/conv_bn_add_relu_arm_func.h | 6 +++--- .../kernel/central-arm-func/conv_transpose_arm_func.h | 3 +-- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/operators/kernel/central-arm-func/conv_add_add_prelu_arm_func.h b/src/operators/kernel/central-arm-func/conv_add_add_prelu_arm_func.h index 7660ed4615..4c9ca6e3e8 100644 --- a/src/operators/kernel/central-arm-func/conv_add_add_prelu_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_add_add_prelu_arm_func.h @@ -32,11 +32,11 @@ void ConvAddAddPReluCompute(const FusionConvAddAddPReluParam ¶m) { Tensor filter = *param.Filter(); Tensor bias = *param.Bias(); Tensor bias1 = *param.Bias1(); - int axis = param.Axis(); Tensor *output = param.Output(); - + output->mutable_data(); float *biase_data = bias.data(); + int axis = param.Axis(); int groups = param.Groups(); std::vector strides = param.Strides(); std::vector paddings = param.Paddings(); diff --git a/src/operators/kernel/central-arm-func/conv_add_arm_func.h b/src/operators/kernel/central-arm-func/conv_add_arm_func.h index c012f74b2b..d6aa5052dd 100644 --- a/src/operators/kernel/central-arm-func/conv_add_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_add_arm_func.h @@ -30,10 +30,11 @@ void ConvAddBasic(const FusionConvAddParam ¶m) { const Tensor *input = param.Input(); Tensor filter = *param.Filter(); Tensor bias = *param.Bias(); - int axis = param.Axis(); Tensor *output = param.Output(); + output->mutable_data(); float *biase_data = bias.data(); + int axis = param.Axis(); int groups = param.Groups(); std::vector strides = param.Strides(); std::vector paddings = param.Paddings(); diff --git a/src/operators/kernel/central-arm-func/conv_add_bn_relu_arm_func.h b/src/operators/kernel/central-arm-func/conv_add_bn_relu_arm_func.h index 9a5bbbbd6a..b94d6c97f2 100644 --- a/src/operators/kernel/central-arm-func/conv_add_bn_relu_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_add_bn_relu_arm_func.h @@ -32,6 +32,8 @@ void ConvAddBNReluBasic(const FusionConvAddBNReluParam ¶m) { Tensor new_bias = *param.NewBias(); Tensor new_scale = *param.NewScale(); Tensor *output = param.Output(); + output->mutable_data(); + int groups = param.Groups(); std::vector strides = param.Strides(); std::vector paddings = param.Paddings(); @@ -115,8 +117,6 @@ void ConvAddBNReluBasic(const FusionConvAddBNReluParam ¶m) { template void ConvAddBNReluCompute(const FusionConvAddBNReluParam ¶m) { - Tensor Bias; - Bias.mutable_data({param.Groups()}); if (param.Groups() == param.Input()->dims()[1] && param.Input()->dims()[1] == param.Output()->dims()[1] && param.Filter()->dims()[2] == param.Filter()->dims()[3] && diff --git a/src/operators/kernel/central-arm-func/conv_add_prelu_arm_func.h b/src/operators/kernel/central-arm-func/conv_add_prelu_arm_func.h index 4a97b2fa81..d11a8442ac 100644 --- a/src/operators/kernel/central-arm-func/conv_add_prelu_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_add_prelu_arm_func.h @@ -31,10 +31,11 @@ void ConvAddPReluCompute(const FusionConvAddPReluParam ¶m) { const Tensor *input = param.Input(); Tensor filter = *param.Filter(); Tensor bias = *param.Bias(); - int axis = param.Axis(); Tensor *output = param.Output(); + output->mutable_data(); float *biase_data = bias.data(); + int axis = param.Axis(); int groups = param.Groups(); std::vector strides = param.Strides(); std::vector paddings = param.Paddings(); diff --git a/src/operators/kernel/central-arm-func/conv_bn_add_relu_arm_func.h b/src/operators/kernel/central-arm-func/conv_bn_add_relu_arm_func.h index 65aee43c59..caaf467141 100644 --- a/src/operators/kernel/central-arm-func/conv_bn_add_relu_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_bn_add_relu_arm_func.h @@ -30,11 +30,11 @@ void ConvBNAddReluBasic(const FusionConvBNAddReluParam ¶m) { Tensor filter = *param.Filter(); Tensor new_bias = *param.NewBias(); Tensor new_scale = *param.NewScale(); - Tensor *output = param.Output(); Tensor *bias1 = param.Bias(); + Tensor *output = param.Output(); + output->mutable_data(); + int groups = param.Groups(); - DLOG << "yangfei2"; - DLOG << bias1->dims(); std::vector strides = param.Strides(); std::vector paddings = param.Paddings(); std::vector dilations = param.Dilations(); diff --git a/src/operators/kernel/central-arm-func/conv_transpose_arm_func.h b/src/operators/kernel/central-arm-func/conv_transpose_arm_func.h index f7ebe571f9..34e9e120ae 100644 --- a/src/operators/kernel/central-arm-func/conv_transpose_arm_func.h +++ b/src/operators/kernel/central-arm-func/conv_transpose_arm_func.h @@ -31,6 +31,7 @@ void ConvTransposeCompute(const ConvTransposeParam ¶m) { const Tensor *input = param.Input(); Tensor filter = *param.Filter(); Tensor *output = param.Output(); + output->mutable_data

(); auto strides = param.Strides(); auto paddings = param.Paddings(); @@ -76,8 +77,6 @@ void ConvTransposeCompute(const ConvTransposeParam ¶m) { framework::DDim filter_matrix_shape = {input->dims()[1], col_matrix_shape[0]}; filter.Resize(filter_matrix_shape); - output->mutable_data

(); - int in_step = static_cast(input->dims()[1]) / groups; int out_step = static_cast(output->dims()[1]) / groups; -- GitLab