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 <narumol.prangnawarat@arm.com>
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 @@
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<DataType2, NumOutputDimensions>(bindingInfo.second));
+ armnn::LayerBindingId outputBindingId = m_Parser->GetNetworkOutputBindingInfo(subgraphId, it.first).first;
+ 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));
+
+ armnn::VerifyTensorInfoDataType(outputTensorInfo, armnnType2);
+ outputStorage.emplace(it.first, MakeTensor<DataType2, NumOutputDimensions>(outputTensorInfo));
outputTensors.push_back(
- { bindingInfo.first, armnn::Tensor(bindingInfo.second, outputStorage.at(it.first).data()) });
+ { outputBindingId, armnn::Tensor(outputTensorInfo, 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();
-
- 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));
- }
-
// Compare each output tensor to the expected values
for (auto&& it : expectedOutputData)
{