From 386681af17ec143a0ea6f503e579e5cd8a334966 Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Mon, 29 Apr 2019 16:40:55 +0100 Subject: IVGCVSW-2993: Investigate TfLite Parser test output shape validation * Get outputTensorInfo from runtime outputs to ensure that the results are from the running network Signed-off-by: Narumol Prangnawarat Change-Id: Ib35afeaf5f6121df7f6379cfc557ae77e5214d69 --- .../test/ParserFlatbuffersFixture.hpp | 31 +++++++++------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp index 9b443c383d..69c5ec1767 100644 --- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp +++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp @@ -270,31 +270,26 @@ void ParserFlatbuffersFixture::RunTest(size_t subgraphId, std::map> outputStorage; armnn::OutputTensors outputTensors; for (auto&& it : expectedOutputData) - { - BindingPointInfo bindingInfo = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first); - armnn::VerifyTensorInfoDataType(bindingInfo.second, armnnType2); - outputStorage.emplace(it.first, MakeTensor(bindingInfo.second)); - outputTensors.push_back( - { bindingInfo.first, armnn::Tensor(bindingInfo.second, outputStorage.at(it.first).data()) }); - } - - m_Runtime->EnqueueWorkload(m_NetworkIdentifier, inputTensors, outputTensors); - - // Check that output tensors have correct number of dimensions (NumOutputDimensions specified in test) - // after running the workload - for (auto&& it : expectedOutputData) { armnn::LayerBindingId outputBindingId = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first).first; - auto outputNumDimensions = m_Runtime->GetOutputTensorInfo( - m_NetworkIdentifier, outputBindingId).GetNumDimensions(); + armnn::TensorInfo outputTensorInfo = m_Runtime->GetOutputTensorInfo(m_NetworkIdentifier, outputBindingId); + // Check that output tensors have correct number of dimensions (NumOutputDimensions specified in test) + auto outputNumDimensions = outputTensorInfo.GetNumDimensions(); BOOST_CHECK_MESSAGE((outputNumDimensions == NumOutputDimensions), boost::str(boost::format("Number of dimensions expected %1%, but got %2% for output layer %3%") - % NumOutputDimensions - % outputNumDimensions - % it.first)); + % NumOutputDimensions + % outputNumDimensions + % it.first)); + + armnn::VerifyTensorInfoDataType(outputTensorInfo, armnnType2); + outputStorage.emplace(it.first, MakeTensor(outputTensorInfo)); + outputTensors.push_back( + { outputBindingId, armnn::Tensor(outputTensorInfo, outputStorage.at(it.first).data()) }); } + m_Runtime->EnqueueWorkload(m_NetworkIdentifier, inputTensors, outputTensors); + // Compare each output tensor to the expected values for (auto&& it : expectedOutputData) { -- cgit v1.2.1