aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-11-14 15:54:26 +0000
committerAnthony Barbier <Anthony.barbier@arm.com>2018-11-15 09:43:21 +0000
commit0cc37c31a36e7b146cf9640ad69925d7c06b71b4 (patch)
tree64bea25de0d16a4e640c88b99c491ace7c5a6edf
parent0e37b5c0e2caaaf18117ec3b1cecff6a85c184f3 (diff)
downloadComputeLibrary-0cc37c31a36e7b146cf9640ad69925d7c06b71b4.tar.gz
COMPMID-1451: Fix the shape of scratch_buffer in case of CIFG
In case of CIFG optimisation scratch buffer should have a size of [batch_size, num_units * 3] else [batch_size, num_units * 4]. Change-Id: I43e46f7b52e791472f1196f36e9142240ba76c5c
-rw-r--r--src/runtime/CL/functions/CLLSTMLayer.cpp4
-rw-r--r--src/runtime/NEON/functions/NELSTMLayer.cpp4
-rw-r--r--tests/validation/fixtures/LSTMLayerFixture.h2
3 files changed, 5 insertions, 5 deletions
diff --git a/src/runtime/CL/functions/CLLSTMLayer.cpp b/src/runtime/CL/functions/CLLSTMLayer.cpp
index 245016efcb..a89c4e3dbf 100644
--- a/src/runtime/CL/functions/CLLSTMLayer.cpp
+++ b/src/runtime/CL/functions/CLLSTMLayer.cpp
@@ -282,7 +282,7 @@ void CLLSTMLayer::configure(const ICLTensor *input,
// Vector for holding the tensors to store in scratch buffer
std::vector<ICLTensor *> scratch_inputs;
- if(lstm_params.has_cifg_opt())
+ if(!lstm_params.has_cifg_opt())
{
scratch_inputs.emplace_back(&_input_gate_out1);
}
@@ -444,7 +444,7 @@ Status CLLSTMLayer::validate(const ITensorInfo *input,
// Validate scratch concatenation
std::vector<ITensorInfo *> inputs_vector_info_raw;
- if(lstm_params.has_cifg_opt())
+ if(!lstm_params.has_cifg_opt())
{
inputs_vector_info_raw.push_back(&input_gate);
}
diff --git a/src/runtime/NEON/functions/NELSTMLayer.cpp b/src/runtime/NEON/functions/NELSTMLayer.cpp
index 934761a8ef..7c7580a6bb 100644
--- a/src/runtime/NEON/functions/NELSTMLayer.cpp
+++ b/src/runtime/NEON/functions/NELSTMLayer.cpp
@@ -286,7 +286,7 @@ void NELSTMLayer::configure(const ITensor *input,
// Vector for holding the tensors to store in scratch buffer
std::vector<ITensor *> scratch_inputs;
- if(lstm_params.has_cifg_opt())
+ if(!lstm_params.has_cifg_opt())
{
scratch_inputs.emplace_back(&_input_gate_out1);
}
@@ -444,7 +444,7 @@ Status NELSTMLayer::validate(const ITensorInfo *input,
// Validate scratch concatenation
std::vector<ITensorInfo *> inputs_vector_info_raw;
- if(lstm_params.has_cifg_opt())
+ if(!lstm_params.has_cifg_opt())
{
inputs_vector_info_raw.push_back(&input_gate);
}
diff --git a/tests/validation/fixtures/LSTMLayerFixture.h b/tests/validation/fixtures/LSTMLayerFixture.h
index bc892bfecf..7f11265932 100644
--- a/tests/validation/fixtures/LSTMLayerFixture.h
+++ b/tests/validation/fixtures/LSTMLayerFixture.h
@@ -100,7 +100,7 @@ protected:
TensorType projection_w;
TensorType projection_bias;
- bool cifg_opt = scratch_shape.x() == cell_bias_shape.x() * 4 ? true : false;
+ bool cifg_opt = scratch_shape.x() == cell_bias_shape.x() * 4 ? false : true;
FunctionParams lstm_params;