aboutsummaryrefslogtreecommitdiff
path: root/src/armnnQuantizer/CommandLineProcessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnQuantizer/CommandLineProcessor.cpp')
-rw-r--r--src/armnnQuantizer/CommandLineProcessor.cpp186
1 files changed, 0 insertions, 186 deletions
diff --git a/src/armnnQuantizer/CommandLineProcessor.cpp b/src/armnnQuantizer/CommandLineProcessor.cpp
deleted file mode 100644
index 74ad5e7dbc..0000000000
--- a/src/armnnQuantizer/CommandLineProcessor.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "CommandLineProcessor.hpp"
-#include <Filesystem.hpp>
-
-#include <cxxopts/cxxopts.hpp>
-
-namespace armnnQuantizer
-{
-
-bool ValidateOutputDirectory(std::string& dir)
-{
- if (dir.empty())
- {
- std::cerr << "No output directory specified" << std::endl;
- return false;
- }
-
- if (dir[dir.length() - 1] != '/')
- {
- dir += "/";
- }
-
- if (!fs::exists(dir))
- {
- std::cerr << "Output directory [" << dir << "] does not exist" << std::endl;
- return false;
- }
-
- if (!fs::is_directory(dir))
- {
- std::cerr << "Given output directory [" << dir << "] is not a directory" << std::endl;
- return false;
- }
-
- return true;
-}
-
-bool ValidateProvidedFile(const std::string& inputFileName)
-{
- if (!fs::exists(inputFileName))
- {
- std::cerr << "Provided file [" << inputFileName << "] does not exist" << std::endl;
- return false;
- }
-
- if (fs::is_directory(inputFileName))
- {
- std::cerr << "Given file [" << inputFileName << "] is a directory" << std::endl;
- return false;
- }
-
- return true;
-}
-
-bool ValidateQuantizationScheme(const std::string& scheme)
-{
- if (scheme.empty())
- {
- std::cerr << "No Quantization Scheme specified" << std::endl;
- return false;
- }
-
- std::vector<std::string> supportedSchemes =
- {
- "QAsymmS8",
- "QAsymmU8",
- "QSymm16"
- };
-
- auto iterator = std::find(supportedSchemes.begin(), supportedSchemes.end(), scheme);
- if (iterator == supportedSchemes.end())
- {
- std::cerr << "Quantization Scheme [" << scheme << "] is not supported" << std::endl;
- return false;
- }
-
- return true;
-}
-
-bool CommandLineProcessor::ProcessCommandLine(int argc, char* argv[])
-{
- try
- {
- cxxopts::Options options("ArmnnQuantizer","Convert a Fp32 ArmNN model to a quantized ArmNN model.");
-
- options.add_options()
- ("h,help", "Display help messages")
- ("f,infile",
- "Input file containing float 32 ArmNN Input Graph",
- cxxopts::value<std::string>(m_InputFileName))
- ("s,scheme",
- "Quantization scheme,"
- " \"QAsymmU8\" or \"QAsymmS8\" or \"QSymm16\","
- " default value QAsymmU8",
- cxxopts::value<std::string>(m_QuantizationScheme)->default_value("QAsymmU8"))
- ("c,csvfile",
- "CSV file containing paths for RAW input tensors",
- cxxopts::value<std::string>(m_CsvFileName)->default_value(""))
- ("p,preserve-data-type",
- "Preserve the input and output data types",
- cxxopts::value<bool>(m_PreserveDataType)->default_value("false"))
- ("d,outdir",
- "Directory that output file will be written to",
- cxxopts::value<std::string>(m_OutputDirectory))
- ("o,outfile",
- "ArmNN output file name",
- cxxopts::value<std::string>(m_OutputFileName));
-
- auto result = options.parse(argc, argv);
-
- if (result.count("help") > 0 || argc <= 1)
- {
- std::cout << options.help() << std::endl;
- return false;
- }
-
- // Check for mandatory single options.
- std::string mandatorySingleParameters[] = { "infile", "outdir", "outfile" };
- for (auto param : mandatorySingleParameters)
- {
- if (result.count(param) != 1)
- {
- std::cerr << "Parameter \'--" << param << "\' is required but missing." << std::endl;
- return false;
- }
- }
- }
- catch (const cxxopts::OptionException& e)
- {
- std::cerr << e.what() << std::endl << std::endl;
- return false;
- }
- catch (const std::exception& e)
- {
- std::cerr << "Fatal internal error: [" << e.what() << "]" << std::endl;
- return false;
- }
-
- if (!armnnQuantizer::ValidateProvidedFile(m_InputFileName))
- {
- return false;
- }
-
- if (!ValidateQuantizationScheme(m_QuantizationScheme))
- {
- return false;
- }
-
- if (m_CsvFileName != "")
- {
- if (!armnnQuantizer::ValidateProvidedFile(m_CsvFileName))
- {
- return false;
- }
- else
- {
- fs::path csvFilePath(m_CsvFileName);
- m_CsvFileDirectory = csvFilePath.parent_path().c_str();
- }
-
- // If CSV file is defined, create a QuantizationDataSet for specified CSV file.
- m_QuantizationDataSet = QuantizationDataSet(m_CsvFileName);
- }
-
- if (!armnnQuantizer::ValidateOutputDirectory(m_OutputDirectory))
- {
- return false;
- }
-
- std::string output(m_OutputDirectory);
- output.append(m_OutputFileName);
-
- if (fs::exists(output))
- {
- std::cerr << "Output file [" << output << "] already exists" << std::endl;
- return false;
- }
-
- return true;
-}
-
-} // namespace armnnQuantizer \ No newline at end of file