From: Narumol Prangnawarat Date: Mon, 29 Apr 2019 15:40:55 +0000 (+0100) Subject: IVGCVSW-2993: Investigate TfLite Parser test output shape validation X-Git-Tag: submit/tizen/20200316.035456~680 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=386681af17ec143a0ea6f503e579e5cd8a334966;p=platform%2Fupstream%2Farmnn.git 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 --- diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp index 9b443c3..69c5ec1 100644 --- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp +++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp @@ -271,30 +271,25 @@ void ParserFlatbuffersFixture::RunTest(size_t subgraphId, 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) {