aboutsummaryrefslogtreecommitdiff
path: root/src/armnnQuantizer/ArmNNQuantizerMain.cpp
diff options
context:
space:
mode:
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