diff options
author | Pablo Tello <pablo.tello@arm.com> | 2018-01-23 09:36:04 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:45:00 +0000 |
commit | d6ca478a7e410f8f529c2e505305b46d9fe21a9b (patch) | |
tree | 5c50c06e07f812890f127b1c4933996987f74f17 /src/core/NEON/kernels/winograd/winograd_layer.cpp | |
parent | d05dce46a14a7b67f322328ecd95bf96bdd30bae (diff) | |
download | ComputeLibrary-d6ca478a7e410f8f529c2e505305b46d9fe21a9b.tar.gz |
COMPMID-784: Added support for biases in WinogradLayer.
1) Updated to the latest code from the RSH repo.
2) Moved winograd transforms into kernels.
3) Added support for biases
Change-Id: I7f39f34a599b49d7d9b549cc10a4f4d4a8007ab8
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/117474
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/winograd/winograd_layer.cpp')
-rw-r--r-- | src/core/NEON/kernels/winograd/winograd_layer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/NEON/kernels/winograd/winograd_layer.cpp b/src/core/NEON/kernels/winograd/winograd_layer.cpp index 689ecba5fb..f16d62c0ef 100644 --- a/src/core/NEON/kernels/winograd/winograd_layer.cpp +++ b/src/core/NEON/kernels/winograd/winograd_layer.cpp @@ -157,6 +157,7 @@ WinogradConvolutionLayer( TIn* const winograd_weights, /** Pointer to storage for weight tensor in the Winograd domain. Must be at least the size returned by `get_weight_storage_size`. */ const TIn* const input, /** Pointer to NHWC ordered input tensor, in the spatial domain. */ TIn* const winograd_input, /** Pointer to working space for the input tensor in the Winograd domain. Must be at least the size returned by `get_input_storage_size`. */ + const TOut* const biases, /** Pointer to biases vector. */ TOut* const output, /** Pointer to NHWC ordered output tensor, in the spatial domain. */ TOut* const winograd_output /** Pointer to working space for the output tensor in the Winograd domain. Must be at least the size returned by `get_output_storage_size`. */ ) : _kernel_shape(n_output_channels, KernelRows, KernelCols, n_input_channels), @@ -193,7 +194,7 @@ WinogradConvolutionLayer( winograd_input, winograd_weights, winograd_output ), output_transform( - winograd_output, _output_matrix_stride, _output_matrix_row_stride, + winograd_output, _output_matrix_stride, _output_matrix_row_stride, biases, output, n_batches, _n_output_rows, _n_output_cols, n_output_channels ) { @@ -202,3 +203,4 @@ WinogradConvolutionLayer( // Instantiate valid implementations. template class WinogradConvolutionLayer<2, 2, 3, 3, float, float>; template class WinogradConvolutionLayer<4, 4, 3, 3, float, float>; +template class WinogradConvolutionLayer<2, 2, 5, 5, float, float>; |