aboutsummaryrefslogtreecommitdiff
path: root/src/armnnQuantizer/ArmNNQuantizerMain.cpp
diff options
context:
space:
mode:
authorJim Flynn <jim.flynn@arm.com>2019-02-15 14:45:04 +0000
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-02-21 08:26:39 +0000
commit3091b06807257a6db0ff03654681f87526f37955 (patch)
tree30855ced21aa74400d6910040e300d3eda15f269 /src/armnnQuantizer/ArmNNQuantizerMain.cpp
parent30b0020478652e441a5dff4880261f7c7007bb6c (diff)
downloadarmnn-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.cpp49
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