ArmNN
 20.05
TfLiteInceptionV3Quantized-Armnn.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #include "../InferenceTest.hpp"
6 #include "../ImagePreprocessor.hpp"
8 
9 using namespace armnnTfLiteParser;
10 
11 int main(int argc, char* argv[])
12 {
13  int retVal = EXIT_FAILURE;
14  try
15  {
16  std::vector<ImageSet> imageSet =
17  {
18  {"Dog.jpg", 209},
19  {"Cat.jpg", 283},
20  {"shark.jpg", 3},
21 
22  };
23 
24  armnn::TensorShape inputTensorShape({ 1, 299, 299, 3 });
25 
26  using DataType = uint8_t;
27  using DatabaseType = ImagePreprocessor<DataType>;
28  using ParserType = armnnTfLiteParser::ITfLiteParser;
29  using ModelType = InferenceModel<ParserType, DataType>;
30 
31  // Coverity fix: ClassifierInferenceTestMain() may throw uncaught exceptions.
32  retVal = armnn::test::ClassifierInferenceTestMain<DatabaseType,
33  ParserType>(
34  argc, argv,
35  "inception_v3_quant.tflite", // model name
36  true, // model is binary
37  "input", // input tensor name
38  "output", // output tensor name
39  { 0, 1, 2 }, // test images to test with as above
40  [&imageSet](const char* dataDir, const ModelType &) {
41  // we need to get the input quantization parameters from
42  // the parsed model
43  return DatabaseType(
44  dataDir,
45  299,
46  299,
47  imageSet,
48  1);
49  },
50  &inputTensorShape);
51  }
52  catch (const std::exception& e)
53  {
54  // Coverity fix: BOOST_LOG_TRIVIAL (typically used to report errors) may throw an
55  // exception of type std::length_error.
56  // Using stderr instead in this context as there is no point in nesting try-catch blocks here.
57  std::cerr << "WARNING: " << *argv << ": An error has occurred when running "
58  "the classifier inference tests: " << e.what() << std::endl;
59  }
60  return retVal;
61 }
DataType
Definition: Types.hpp:32
int ClassifierInferenceTestMain(int argc, char *argv[], const char *modelFilename, bool isModelBinary, const char *inputBindingName, const char *outputBindingName, const std::vector< unsigned int > &defaultTestCaseIds, TConstructDatabaseCallable constructDatabase, const armnn::TensorShape *inputTensorShape=nullptr)
int main(int argc, char *argv[])