diff options
author | Sang-Hoon Park <sang-hoon.park@arm.com> | 2020-05-06 21:01:19 +0100 |
---|---|---|
committer | Sang-Hoon Park <sang-hoon.park@arm.com> | 2020-05-11 11:37:41 +0000 |
commit | d5c020a20514cad8c78f0ab2cc46a03607854a49 (patch) | |
tree | e4fdb01d446022267aaaced2021ad61399b6f34b /src/runtime/NEON/functions/NELSTMLayer.cpp | |
parent | 6f8b17dedb7b53b550e6210fd1c78c3a3e086271 (diff) | |
download | ComputeLibrary-d5c020a20514cad8c78f0ab2cc46a03607854a49.tar.gz |
COMPMID-3239: Fix projection and peephole in NEQLSTMLayer
- Peephole and projection has been fixed to be working
- Small internal kernel copying data between tensors to
cover the case where num_units and output_size is different
is added.
Below is strictly outside of this patch's scope but are changes
helping this patch working (directly or indirectly) or making
NEQLSTM more complete.
- Consideration for layer normalization is added to InfoHelpers
- QSYMM8 data type is added to helper function to
print out tensors.
- NE/CLLSTMLayer::validate() logic has been modified to use correct
value for shape validation.
Change-Id: I40b4e71dfdbe8432caa2fe4a9af60a725362cc33
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3157
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/NEON/functions/NELSTMLayer.cpp')
-rw-r--r-- | src/runtime/NEON/functions/NELSTMLayer.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/NEON/functions/NELSTMLayer.cpp b/src/runtime/NEON/functions/NELSTMLayer.cpp index aac63e7643..f9d445fe71 100644 --- a/src/runtime/NEON/functions/NELSTMLayer.cpp +++ b/src/runtime/NEON/functions/NELSTMLayer.cpp @@ -420,7 +420,7 @@ Status NELSTMLayer::validate(const ITensorInfo *input, { ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(lstm_params.input_layer_norm_weights()); ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.input_layer_norm_weights()->num_dimensions() > 1); - ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.input_layer_norm_weights()->dimension(0) != num_batches); + ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.input_layer_norm_weights()->dimension(0) != num_cells); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(input, lstm_params.input_layer_norm_weights()); } @@ -429,9 +429,9 @@ Status NELSTMLayer::validate(const ITensorInfo *input, ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.forget_layer_norm_weights()->num_dimensions() > 1); ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.cell_layer_norm_weights()->num_dimensions() > 1); ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.output_layer_norm_weights()->num_dimensions() > 1); - ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.forget_layer_norm_weights()->dimension(0) != num_batches); - ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.cell_layer_norm_weights()->dimension(0) != num_batches); - ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.output_layer_norm_weights()->dimension(0) != num_batches); + ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.forget_layer_norm_weights()->dimension(0) != num_cells); + ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.cell_layer_norm_weights()->dimension(0) != num_cells); + ARM_COMPUTE_RETURN_ERROR_ON(lstm_params.output_layer_norm_weights()->dimension(0) != num_cells); } // Check peephole optimization |