From 2adf5f07081719e27870c5d461698e3153e0e74a Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Tue, 21 Jul 2020 10:21:19 +0100 Subject: IVGCVSW-5078 Fix segmentation fault on Yolo v3 big app Signed-off-by: Narumol Prangnawarat Change-Id: I6ec9bbc22f26dcb55f7424da5bb1d21c66a7bf01 --- .../TfLiteYoloV3Big-Armnn.cpp | 43 ++++++++++++---------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/tests/TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp b/tests/TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp index 4610675237..bf3578c37e 100644 --- a/tests/TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp +++ b/tests/TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp @@ -48,7 +48,7 @@ static const int GENERAL_ERROR = -100; template inline armnn::InputTensors MakeInputTensors(const std::vector& inputBindings, - const std::vector& inputDataContainers) + const std::vector>& inputDataContainers) { armnn::InputTensors inputTensors; @@ -61,7 +61,7 @@ inline armnn::InputTensors MakeInputTensors(const std::vector -inline armnn::OutputTensors MakeOutputTensors(const std::vector& outputBindings, - const std::vector& outputDataContainers) +inline armnn::OutputTensors MakeOutputTensors( + const std::vector& outputBindings, + const std::vector>& outputDataContainers) { armnn::OutputTensors outputTensors; @@ -82,10 +83,12 @@ inline armnn::OutputTensors MakeOutputTensors(const std::vector(outputData.data())); outputTensors.push_back(std::make_pair(outputBinding.first, outputTensor)); @@ -366,22 +369,22 @@ int main(int argc, char* argv[]) // Setup inputs and outputs using BindingInfos = std::vector; - using FloatTensors = std::vector>; - - InputTensors bbInputTensors = MakeInputTensors(BindingInfos{inputId}, - FloatTensors{std::move(image)}); - OutputTensors bbOutputTensors = MakeOutputTensors(BindingInfos{bbOut0Id, bbOut1Id, bbOut2Id}, - FloatTensors{intermediateMem0, - intermediateMem1, - intermediateMem2}); - InputTensors detectInputTensors = MakeInputTensors(BindingInfos{detectIn0Id, - detectIn1Id, - detectIn2Id}, - FloatTensors{intermediateMem0, + using FloatTensors = std::vector>>; + + InputTensors bbInputTensors = MakeInputTensors(BindingInfos{ inputId }, + FloatTensors{ image }); + OutputTensors bbOutputTensors = MakeOutputTensors(BindingInfos{ bbOut0Id, bbOut1Id, bbOut2Id }, + FloatTensors{ intermediateMem0, intermediateMem1, - intermediateMem2}); - OutputTensors detectOutputTensors = MakeOutputTensors(BindingInfos{outputBoxesId}, - FloatTensors{intermediateMem3}); + intermediateMem2 }); + InputTensors detectInputTensors = MakeInputTensors(BindingInfos{ detectIn0Id, + detectIn1Id, + detectIn2Id } , + FloatTensors{ intermediateMem0, + intermediateMem1, + intermediateMem2 }); + OutputTensors detectOutputTensors = MakeOutputTensors(BindingInfos{ outputBoxesId }, + FloatTensors{ intermediateMem3 }); static const int numIterations=2; using DurationUS = std::chrono::duration; -- cgit v1.2.1