diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-02-15 17:22:36 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:47:18 +0000 |
commit | 02ee4291795f64fb510a71c6c754671438635186 (patch) | |
tree | f802116a435ec454f0165943131565b788d01a31 /src | |
parent | 82833b80b1a28ff32fe3c3b2f4996fa21a08bbbc (diff) | |
download | ComputeLibrary-02ee4291795f64fb510a71c6c754671438635186.tar.gz |
COMPMID-765: Fix CPPPermute error when permuting the strides.
Change-Id: I4ea57579d997dd6a2e248634e3b7cb58bb3e2838
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/120693
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/CPP/kernels/CPPPermuteKernel.cpp | 2 | ||||
-rw-r--r-- | src/runtime/NEON/functions/NEWinogradLayer.cpp | 22 |
2 files changed, 2 insertions, 22 deletions
diff --git a/src/core/CPP/kernels/CPPPermuteKernel.cpp b/src/core/CPP/kernels/CPPPermuteKernel.cpp index 6b3e855ad3..5c93f3e93a 100644 --- a/src/core/CPP/kernels/CPPPermuteKernel.cpp +++ b/src/core/CPP/kernels/CPPPermuteKernel.cpp @@ -65,7 +65,7 @@ inline void permute_strides(Dimensions<T> &dimensions, const PermutationVector & const auto old_dim = utility::make_array<Dimensions<T>::num_max_dimensions>(dimensions.begin(), dimensions.end()); for(unsigned int i = 0; i < perm.num_dimensions(); ++i) { - T dimension_val = (perm[i] < dimensions.num_dimensions()) ? old_dim[i] : 0; + T dimension_val = old_dim[i]; dimensions.set(perm[i], dimension_val); } } diff --git a/src/runtime/NEON/functions/NEWinogradLayer.cpp b/src/runtime/NEON/functions/NEWinogradLayer.cpp index d2d40dfcb0..215f1bfddf 100644 --- a/src/runtime/NEON/functions/NEWinogradLayer.cpp +++ b/src/runtime/NEON/functions/NEWinogradLayer.cpp @@ -109,34 +109,14 @@ void NEWinogradLayer::configure(const ITensor *input, const ITensor *weights, co _output->info()->dimension(1), _output->info()->dimension(3)), 1, _output->info()->data_type()); _output_nhwc.allocator()->init(info); - _output_nhwc.allocator()->allocate(); // Re-order a weight tensor from [Output feature map x Input feature map x Height x Width] to [Height x Width x Input feature map x Output feature map] - switch(weights->info()->num_dimensions()) - { - case 3: - { - _permute_weights.configure(weights, &_weights_hwio, PermutationVector(2U, 0U, 1U)); - break; - } - case 4: - { - _permute_weights.configure(weights, &_weights_hwio, PermutationVector(3U, 2U, 0U, 1U)); - break; - } - default: - { - ARM_COMPUTE_ERROR("Not supported."); - break; - } - } - + _permute_weights.configure(weights, &_weights_hwio, PermutationVector(3U, 2U, 0U, 1U)); _weights_hwio.allocator()->allocate(); // configure the kernel to transform the input tensor from NCHW -> NHWC _permute_input.configure(input, &_input_nhwc, PermutationVector(2U, 0U, 1U)); - _input_nhwc.allocator()->allocate(); using T = winograd::WinogradGEMM<2, 2, 3, 3>::Convolution<float, float>; |