From 597a85666a84c9a9414264966651551564b79299 Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Wed, 1 Aug 2018 15:06:06 +0100 Subject: COMPMID-872 - Rework NEGEMMConvolutionLayer to use NEGEMM Change-Id: I55f0018ac7214775ebbca63f58a3bf5c93732fec Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/142632 Tested-by: Jenkins Reviewed-by: Anthony Barbier --- arm_compute/core/utils/misc/ShapeCalculator.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'arm_compute/core/utils') diff --git a/arm_compute/core/utils/misc/ShapeCalculator.h b/arm_compute/core/utils/misc/ShapeCalculator.h index bf55add1d2..ac83dcb2cd 100644 --- a/arm_compute/core/utils/misc/ShapeCalculator.h +++ b/arm_compute/core/utils/misc/ShapeCalculator.h @@ -182,7 +182,7 @@ inline TensorShape compute_deconvolution_shape(const ITensorInfo &input, unsigne return scale_out_shape; } -inline TensorShape compute_im2col_conv_shape(const ITensorInfo *input, const Size2D &kernel_dims, const PadStrideInfo &conv_info, bool has_bias, const Size2D &dilation) +inline TensorShape compute_im2col_conv_shape(const ITensorInfo *input, const Size2D &kernel_dims, const PadStrideInfo &conv_info, bool has_bias, const Size2D &dilation, bool batch_size_on_z) { // The output shape will be the 2D shape used as input for GEMM [ out_channels * kernel_area, num_elems_per_out_channel ] @@ -196,7 +196,14 @@ inline TensorShape compute_im2col_conv_shape(const ITensorInfo *input, const Siz std::pair out_dims = scaled_dimensions(output_shape[width_idx], output_shape[height_idx], kernel_dims.width, kernel_dims.height, conv_info, dilation); output_shape.set(0, (output_shape[channel_idx] * kernel_dims.area() + (has_bias ? 1 : 0))); output_shape.set(1, (out_dims.first * out_dims.second)); - output_shape.set(2, 1); + if(batch_size_on_z && output_shape.num_dimensions() >= 3) + { + output_shape.remove_dimension(2); + } + else + { + output_shape.set(2, 1); + } return output_shape; } -- cgit v1.2.1