diff options
author | Jim Flynn <jim.flynn@arm.com> | 2019-02-15 14:45:04 +0000 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-02-21 08:26:39 +0000 |
commit | 3091b06807257a6db0ff03654681f87526f37955 (patch) | |
tree | 30855ced21aa74400d6910040e300d3eda15f269 /src/armnnQuantizer/ArmNNQuantizerMain.cpp | |
parent | 30b0020478652e441a5dff4880261f7c7007bb6c (diff) | |
download | armnn-3091b06807257a6db0ff03654681f87526f37955.tar.gz |
IVGCVSW-2610 Add Quantization Tool Executable
* Also added TensorInfos to the output slots in the SerializerTests
to create valid ArmNN networks for serialization
Change-Id: I092b1ac889dd5e05cb1c10c9dfb573acaf1970d9
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'src/armnnQuantizer/ArmNNQuantizerMain.cpp')
-rw-r--r-- | src/armnnQuantizer/ArmNNQuantizerMain.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/armnnQuantizer/ArmNNQuantizerMain.cpp b/src/armnnQuantizer/ArmNNQuantizerMain.cpp new file mode 100644 index 0000000000..acfbe6241f --- /dev/null +++ b/src/armnnQuantizer/ArmNNQuantizerMain.cpp @@ -0,0 +1,49 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "CommandLineProcessor.hpp" +#include <armnnDeserializer/IDeserializer.hpp> +#include <armnn/INetworkQuantizer.hpp> +#include <armnnSerializer/ISerializer.hpp> + +#include <iostream> +#include <fstream> + +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::INetworkPtr network = parser->CreateNetworkFromBinary(binaryContent); + armnn::INetworkPtr quantizedNetwork = armnn::INetworkQuantizer::Create(network.get())->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 |