diff options
author | Jim Flynn <jim.flynn@arm.com> | 2019-05-03 12:54:26 +0100 |
---|---|---|
committer | Ruomei Yan <ruomei.yan@arm.com> | 2019-05-07 09:21:19 +0000 |
commit | 2fd6100c7c034d6fc4420fbb5b615660803e46e9 (patch) | |
tree | 121f2faa4be9adeb2fedc4b9116426b5c9388421 /tests | |
parent | 0eea37c05f82b299f6579ad119194f429147687e (diff) | |
download | armnn-2fd6100c7c034d6fc4420fbb5b615660803e46e9.tar.gz |
IVGCVSW-3038 Move MakeInputTensors to armnnUtils
Change-Id: I4352a645badde788b9e33b3675a9cc9c0fc3dc33
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/InferenceModel.hpp | 73 | ||||
-rw-r--r-- | tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp | 6 |
2 files changed, 5 insertions, 74 deletions
diff --git a/tests/InferenceModel.hpp b/tests/InferenceModel.hpp index d2d2ca3c8e..8e463ec326 100644 --- a/tests/InferenceModel.hpp +++ b/tests/InferenceModel.hpp @@ -16,6 +16,7 @@ #endif #include <HeapProfiling.hpp> +#include <TensorIOUtils.hpp> #include <backendsCommon/BackendRegistry.hpp> @@ -302,75 +303,7 @@ public: }; #endif -template<typename TContainer> -inline armnn::InputTensors MakeInputTensors( - const std::vector<armnn::BindingPointInfo>& inputBindings, - const std::vector<TContainer>& inputDataContainers) -{ - armnn::InputTensors inputTensors; - - const size_t numInputs = inputBindings.size(); - if (numInputs != inputDataContainers.size()) - { - throw armnn::Exception(boost::str(boost::format("Number of inputs does not match number of " - "tensor data containers: %1% != %2%") % numInputs % inputDataContainers.size())); - } - - for (size_t i = 0; i < numInputs; i++) - { - const armnn::BindingPointInfo& inputBinding = inputBindings[i]; - const TContainer& inputData = inputDataContainers[i]; - - boost::apply_visitor([&](auto&& value) - { - if (value.size() != inputBinding.second.GetNumElements()) - { - throw armnn::Exception("Input tensor has incorrect size"); - } - - armnn::ConstTensor inputTensor(inputBinding.second, value.data()); - inputTensors.push_back(std::make_pair(inputBinding.first, inputTensor)); - }, - inputData); - } - - return inputTensors; -} -template<typename TContainer> -inline armnn::OutputTensors MakeOutputTensors( - const std::vector<armnn::BindingPointInfo>& outputBindings, - std::vector<TContainer>& outputDataContainers) -{ - armnn::OutputTensors outputTensors; - - const size_t numOutputs = outputBindings.size(); - if (numOutputs != outputDataContainers.size()) - { - throw armnn::Exception(boost::str(boost::format("Number of outputs does not match number of " - "tensor data containers: %1% != %2%") % numOutputs % outputDataContainers.size())); - } - - for (size_t i = 0; i < numOutputs; i++) - { - const armnn::BindingPointInfo& outputBinding = outputBindings[i]; - TContainer& outputData = outputDataContainers[i]; - - boost::apply_visitor([&](auto&& value) - { - if (value.size() != outputBinding.second.GetNumElements()) - { - throw armnn::Exception("Output tensor has incorrect size"); - } - - armnn::Tensor outputTensor(outputBinding.second, value.data()); - outputTensors.push_back(std::make_pair(outputBinding.first, outputTensor)); - }, - outputData); - } - - return outputTensors; -} template <typename IParser, typename TDataType> class InferenceModel @@ -615,13 +548,13 @@ private: template<typename TContainer> armnn::InputTensors MakeInputTensors(const std::vector<TContainer>& inputDataContainers) { - return ::MakeInputTensors(m_InputBindings, inputDataContainers); + return armnnUtils::MakeInputTensors(m_InputBindings, inputDataContainers); } template<typename TContainer> armnn::OutputTensors MakeOutputTensors(std::vector<TContainer>& outputDataContainers) { - return ::MakeOutputTensors(m_OutputBindings, outputDataContainers); + return armnnUtils::MakeOutputTensors(m_OutputBindings, outputDataContainers); } std::chrono::high_resolution_clock::time_point GetCurrentTime() diff --git a/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp b/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp index 006318f73a..fec78ac805 100644 --- a/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp +++ b/tests/MultipleNetworksCifar10/MultipleNetworksCifar10.cpp @@ -168,8 +168,6 @@ int main(int argc, char* argv[]) } Cifar10Database cifar10(dataDir); - using TContainer = boost::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char>>; - for (unsigned int i = 0; i < 3; ++i) { // Loads test case data (including image data). @@ -193,8 +191,8 @@ int main(int argc, char* argv[]) std::vector<TContainer> outputDataContainers = { outputs[k] }; status = runtime->EnqueueWorkload(networks[k].m_Network, - MakeInputTensors(inputBindings, inputDataContainers), - MakeOutputTensors(outputBindings, outputDataContainers)); + armnnUtils::MakeInputTensors(inputBindings, inputDataContainers), + armnnUtils::MakeOutputTensors(outputBindings, outputDataContainers)); if (status == armnn::Status::Failure) { BOOST_LOG_TRIVIAL(fatal) << "armnn::IRuntime: Failed to enqueue workload"; |