aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Bentham <matthew.bentham@arm.com>2019-07-02 15:45:18 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2019-07-03 14:41:41 +0000
commit4686af0384d6102dc637cfb0ef0c576c6663e7cc (patch)
treed133bdca4d304d02f75fa767360fb2abd5e42350
parentda1fb9b01ce9545b375c61a3bf5a5337199834a7 (diff)
downloadarmnn-4686af0384d6102dc637cfb0ef0c576c6663e7cc.tar.gz
IVGCVSW-3307 TransposeConvolution: Don't call Map() before Execute()
Change-Id: I7a812eafc8c73d074049ba95189cbc17d276eee3 Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
-rw-r--r--src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp b/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp
index ec600305a7..2ab76041ef 100644
--- a/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp
+++ b/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp
@@ -21,7 +21,7 @@ RefTransposeConvolution2dWorkload::RefTransposeConvolution2dWorkload(
m_Weights = std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Weight));
const TensorInfo& weightsInfo = m_Weights->GetTensorInfo();
- m_WeightsDecoder = MakeDecoder<float>(weightsInfo, m_Weights.get()->Map(true));
+ m_WeightsDecoder = MakeDecoder<float>(weightsInfo, m_Weights->Map(true));
m_WeightsShape = weightsInfo.GetShape();
// set up biases decoder
@@ -29,7 +29,7 @@ RefTransposeConvolution2dWorkload::RefTransposeConvolution2dWorkload(
{
m_Biases = std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Bias));
const TensorInfo& biasesInfo = m_Biases->GetTensorInfo();
- m_BiasesDecoder = MakeDecoder<float>(biasesInfo, m_Biases.get()->Map(true));
+ m_BiasesDecoder = MakeDecoder<float>(biasesInfo, m_Biases->Map(true));
}
}
@@ -40,20 +40,23 @@ void RefTransposeConvolution2dWorkload::PostAllocationConfigure()
const TensorInfo& inputInfo = GetTensorInfo(input);
m_InputShape = inputInfo.GetShape();
- m_InputDecoder = MakeDecoder<float>(inputInfo, input->Map());
+ m_InputDecoder = MakeDecoder<float>(inputInfo);
// set up output encoder
ITensorHandle* output = m_Data.m_Outputs[0];
const TensorInfo& outputInfo = GetTensorInfo(output);
m_OutputShape = outputInfo.GetShape();
- m_OutputEncoder = MakeEncoder<float>(outputInfo, output->Map());
+ m_OutputEncoder = MakeEncoder<float>(outputInfo);
}
void RefTransposeConvolution2dWorkload::Execute() const
{
ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefTransposeConvolution2dWorkload_Execute");
+ m_InputDecoder->Reset(m_Data.m_Inputs[0]->Map());
+ m_OutputEncoder->Reset(m_Data.m_Outputs[0]->Map());
+
TransposeConvolution2dImpl(m_Data.m_Parameters,
m_InputShape,
*m_InputDecoder,