aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp
diff options
context:
space:
mode:
authorMatthew Bentham <Matthew.Bentham@arm.com>2019-06-24 12:51:25 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-07-02 09:19:19 +0000
commitc394a6d17008f876c73e94883f0c59aeedfe73f0 (patch)
tree211b8aaad05f52302354ffeff97a60ac1892ae83 /src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp
parent4cefc4135f7fbf5c2ba532a4f5b14d2811f9ed9e (diff)
downloadarmnn-c394a6d17008f876c73e94883f0c59aeedfe73f0.tar.gz
IVGCVSW-3307 Don't assume TensorInfo::Map() can be called before Execute()
Change-Id: I445c69d2e99d8c93622e739af61f721e61b0f90f Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
Diffstat (limited to 'src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp')
-rw-r--r--src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp b/src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp
index 48a20cf380..cfc81ce203 100644
--- a/src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp
+++ b/src/backends/reference/workloads/RefDepthwiseConvolution2dWorkload.cpp
@@ -36,11 +36,11 @@ void RefDepthwiseConvolution2dWorkload::PostAllocationConfigure()
{
const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]);
m_InputShape = inputInfo.GetShape();
- m_InputDecoder = MakeDecoder<float>(inputInfo, m_Data.m_Inputs[0]->Map());
+ m_InputDecoder = MakeDecoder<float>(inputInfo);
const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
m_OutputShape = outputInfo.GetShape();
- m_OutputEncoder = MakeEncoder<float>(outputInfo, m_Data.m_Outputs[0]->Map());
+ m_OutputEncoder = MakeEncoder<float>(outputInfo);
}
void RefDepthwiseConvolution2dWorkload::Execute() const
@@ -48,6 +48,9 @@ void RefDepthwiseConvolution2dWorkload::Execute() const
ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefDepthwiseConvolution2dWorkload_Execute");
std::unique_ptr<Decoder<float>> pBiasDecoder{};
+ m_InputDecoder->Reset(m_Data.m_Inputs[0]->Map());
+ m_OutputEncoder->Reset(m_Data.m_Outputs[0]->Map());
+
Convolve(m_InputShape, *m_InputDecoder, m_OutputShape, *m_OutputEncoder,
m_FilterShape, *m_FilterDecoder, m_Data.m_Parameters.m_BiasEnabled, m_BiasDecoder.get(),
m_Data.m_Parameters.m_DataLayout, m_Data.m_Parameters.m_PadTop, m_Data.m_Parameters.m_PadLeft,