COMPMID-556: Fix NEConvolutionLayer for fully connected convolution.
Fixes weights shapes and assembly kernels dispatch parameters in case of
fully connected convolution.
Change-Id: I872c5934aab1d8ea6ef154d843521b5618fa2dcc
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/113062
Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/src/runtime/CL/functions/CLConvolutionLayer.cpp b/src/runtime/CL/functions/CLConvolutionLayer.cpp
index d628bf9..64c31d5 100644
--- a/src/runtime/CL/functions/CLConvolutionLayer.cpp
+++ b/src/runtime/CL/functions/CLConvolutionLayer.cpp
@@ -190,9 +190,17 @@
// Reshape weights if needed
if(_are_weights_reshaped)
{
- mat_weights_cols = weights_info.num_kernels();
- const unsigned int quarter_reshaped_cols = weights->info()->dimension(0) / 4;
- mat_weights_rows = quarter_reshaped_cols + bias_element;
+ if(_is_fully_connected_convolution || _is_quantized)
+ {
+ mat_weights_cols = weights->info()->dimension(0);
+ mat_weights_rows = weights->info()->dimension(1);
+ }
+ else
+ {
+ mat_weights_cols = weights_info.num_kernels();
+ const unsigned int quarter_reshaped_cols = weights->info()->dimension(0) / 4;
+ mat_weights_rows = quarter_reshaped_cols + bias_element;
+ }
}
else
{