diff options
Diffstat (limited to 'src/armnnQuantizer/ArmNNQuantizerMain.cpp')
-rw-r--r-- | src/armnnQuantizer/ArmNNQuantizerMain.cpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/armnnQuantizer/ArmNNQuantizerMain.cpp b/src/armnnQuantizer/ArmNNQuantizerMain.cpp deleted file mode 100644 index 49652efe25..0000000000 --- a/src/armnnQuantizer/ArmNNQuantizerMain.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "CommandLineProcessor.hpp" -#include <armnnDeserializer/IDeserializer.hpp> -#include <armnnQuantizer/INetworkQuantizer.hpp> -#include <armnnSerializer/ISerializer.hpp> -#include "QuantizationDataSet.hpp" -#include "QuantizationInput.hpp" - -#include <algorithm> -#include <fstream> -#include <iostream> - -int main(int argc, char* argv[]) -{ - armnnQuantizer::CommandLineProcessor cmdline; - if (!cmdline.ProcessCommandLine(argc, argv)) - { - return -1; - } - armnnDeserializer::IDeserializerPtr parser = armnnDeserializer::IDeserializer::Create(); - std::ifstream inputFileStream(cmdline.GetInputFileName(), std::ios::binary); - std::vector<std::uint8_t> binaryContent; - while (inputFileStream) - { - char c; - inputFileStream.get(c); - if (inputFileStream) - { - binaryContent.push_back(static_cast<std::uint8_t>(c)); - } - } - inputFileStream.close(); - - armnn::QuantizerOptions quantizerOptions; - - if (cmdline.GetQuantizationScheme() == "QAsymmS8") - { - quantizerOptions.m_ActivationFormat = armnn::DataType::QAsymmS8; - } - else if (cmdline.GetQuantizationScheme() == "QSymmS16") - { - quantizerOptions.m_ActivationFormat = armnn::DataType::QSymmS16; - } - else - { - quantizerOptions.m_ActivationFormat = armnn::DataType::QAsymmU8; - } - - quantizerOptions.m_PreserveType = cmdline.HasPreservedDataType(); - - armnn::INetworkPtr network = parser->CreateNetworkFromBinary(binaryContent); - armnn::INetworkQuantizerPtr quantizer = armnn::INetworkQuantizer::Create(network.get(), quantizerOptions); - - if (cmdline.HasQuantizationData()) - { - armnnQuantizer::QuantizationDataSet dataSet = cmdline.GetQuantizationDataSet(); - if (!dataSet.IsEmpty()) - { - // Get the Input Tensor Infos - armnnQuantizer::InputLayerStrategy inputLayerStrategy; - network->ExecuteStrategy(inputLayerStrategy); - - for (armnnQuantizer::QuantizationInput quantizationInput : dataSet) - { - armnn::InputTensors inputTensors; - std::vector<std::vector<float>> inputData(quantizationInput.GetNumberOfInputs()); - std::vector<armnn::LayerBindingId> layerBindingIds = quantizationInput.GetLayerBindingIds(); - unsigned int count = 0; - for (armnn::LayerBindingId layerBindingId : quantizationInput.GetLayerBindingIds()) - { - armnn::TensorInfo tensorInfo = inputLayerStrategy.GetTensorInfo(layerBindingId); - inputData[count] = quantizationInput.GetDataForEntry(layerBindingId); - armnn::ConstTensor inputTensor(tensorInfo, inputData[count].data()); - inputTensors.push_back(std::make_pair(layerBindingId, inputTensor)); - count++; - } - quantizer->Refine(inputTensors); - } - } - } - - armnn::INetworkPtr quantizedNetwork = quantizer->ExportNetwork(); - armnnSerializer::ISerializerPtr serializer = armnnSerializer::ISerializer::Create(); - serializer->Serialize(*quantizedNetwork); - - std::string output(cmdline.GetOutputDirectoryName()); - output.append(cmdline.GetOutputFileName()); - std::ofstream outputFileStream; - outputFileStream.open(output); - serializer->SaveSerializedToStream(outputFileStream); - outputFileStream.flush(); - outputFileStream.close(); - - return 0; -}
\ No newline at end of file |