aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backends/reference/workloads/FullyConnected.cpp8
-rw-r--r--src/backends/reference/workloads/FullyConnected.hpp2
-rw-r--r--src/backends/reference/workloads/RefFullyConnectedWorkload.cpp2
3 files changed, 8 insertions, 4 deletions
diff --git a/src/backends/reference/workloads/FullyConnected.cpp b/src/backends/reference/workloads/FullyConnected.cpp
index 9ec9ea6c6c..47968f4d88 100644
--- a/src/backends/reference/workloads/FullyConnected.cpp
+++ b/src/backends/reference/workloads/FullyConnected.cpp
@@ -5,6 +5,8 @@
#include "FullyConnected.hpp"
+#include <armnn/utility/Assert.hpp>
+
#include "RefWorkloadUtils.hpp"
namespace armnn
@@ -16,7 +18,7 @@ void FullyConnected(const TensorShape& rInputShape,
Encoder<float>& rOutputEncoder,
const TensorShape& rWeightsShape,
Decoder<float>& rWeightDecoder,
- Decoder<float>& rBiasDecoder,
+ Decoder<float>* pBiasDecoder,
const bool biasEnabled,
const unsigned int K,
const bool transposeWeights)
@@ -28,7 +30,9 @@ void FullyConnected(const TensorShape& rInputShape,
const std::vector<float> decodedWeights = rWeightDecoder.DecodeTensor(rWeightsShape);
const TensorShape biasShape{outputSize};
- const std::vector<float> decodedBiases = biasEnabled ? rBiasDecoder.DecodeTensor(biasShape) : std::vector<float>();
+
+ ARMNN_ASSERT(!biasEnabled || pBiasDecoder != nullptr);
+ const std::vector<float> decodedBiases = biasEnabled ? pBiasDecoder->DecodeTensor(biasShape) : std::vector<float>();
for (unsigned int n = 0; n < rInputShape[0]; n++)
diff --git a/src/backends/reference/workloads/FullyConnected.hpp b/src/backends/reference/workloads/FullyConnected.hpp
index e33060631b..d7881f0b66 100644
--- a/src/backends/reference/workloads/FullyConnected.hpp
+++ b/src/backends/reference/workloads/FullyConnected.hpp
@@ -21,7 +21,7 @@ void FullyConnected(const TensorShape& rInputShape,
Encoder<float>& rOutputEncoder,
const TensorShape& rWeightsShape,
Decoder<float>& rWeightDecoder,
- Decoder<float>& rBiasDecoder,
+ Decoder<float>* rBiasDecoder,
bool biasEnabled,
unsigned int K,
bool transposeWeights);
diff --git a/src/backends/reference/workloads/RefFullyConnectedWorkload.cpp b/src/backends/reference/workloads/RefFullyConnectedWorkload.cpp
index 3e63afac6f..99e3eab075 100644
--- a/src/backends/reference/workloads/RefFullyConnectedWorkload.cpp
+++ b/src/backends/reference/workloads/RefFullyConnectedWorkload.cpp
@@ -102,7 +102,7 @@ void RefFullyConnectedWorkload::Execute(std::vector<ITensorHandle*> inputs, std:
*OutputEncoder,
m_WeightShape,
*m_WeightDecoder,
- *m_BiasDecoder,
+ m_BiasDecoder.get(),
m_Data.m_Parameters.m_BiasEnabled,
m_NumActivations,
m_Data.m_Parameters.m_TransposeWeightMatrix);