diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2018-09-13 16:22:01 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:55:45 +0000 |
commit | ed5a492ba791d8c8b3334749d4ae946b8f11d13d (patch) | |
tree | 89c8cd6f705dc88a21c61668164aad079800aff7 /arm_compute/runtime/CL | |
parent | 7e9391bb14d219cda310bff355669b5964b1f576 (diff) | |
download | ComputeLibrary-ed5a492ba791d8c8b3334749d4ae946b8f11d13d.tar.gz |
COMPMID-1586: Add support for NHWC CLDeconvolutionLayer
COMPMID-1651: Fix QASYMM8 CLDeconvolutionLayer
This patch also extends the range of values used for testing Convolution and
Deconvolution to cover quantized [-1.0f, 1.0f].
Change-Id: I8b280669db67bb3ec25bf5d411c8f5954f5b0dab
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/149869
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Tested-by: bsgcomp <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/runtime/CL')
-rw-r--r-- | arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h index 6716cd6fdd..39cbe0cafa 100644 --- a/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h +++ b/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h @@ -46,8 +46,12 @@ class ICLTensor; * specified value where a < stride - 1, that increases the padding top and right of the input image. * * The relation between input to output is as follows: - * width_output = round((width_input − 1) ∗ (stride_x - 1) − 2 ∗ padding_x + kernel_x + inner_border_right ) - * height_output = round((height_input − 1) ∗ (stride_y - 1) − 2 ∗ padding_y + kernel_y + inner_border_top ) + * \f[ + * width\_output = (width\_input - 1) \cdot stride\_x - 2 \cdot padding\_x + kernel\_x + * \f] + * \f[ + * height\_output = (height\_input - 1) \cdot stride\_y - 2 \cdot padding\_y + kernel\_y + * \f] * * where: * width_input is the size of the first input dimension. @@ -55,9 +59,16 @@ class ICLTensor; * width_output is the size of the first output dimension. * height_output is the size of the second output dimension. * kernel_x and kernel_y are the convolution sizes in x and y. - * inner_border_right and inner_border_top the number of zeros added to the right and top edges of the input. * stride_x and stride_y is the input stride of the first and second dimension. * + * The weights used by Deconvolution are supposed to be the same as the ones used for Convolution. Therefore, it will be necessary to use the weights in the + * reverse order to perform an actual convolution. This is achieved by using the @ref CPPFlipWeightsKernel. + * + * This function calls the following OpenCL kernels/functions: + * + * -# @ref CLDeconvolutionLayerUpsample + * -# @ref CLConvolutionLayer + * */ class CLDeconvolutionLayer : public IFunction { |