ArmNN
 22.05
OnnxMobileNet-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 int main(int argc, char* argv[])
10 {
11  int retVal = EXIT_FAILURE;
12  try
13  {
14  // Coverity fix: The following code may throw an exception of type std::length_error.
15  std::vector<ImageSet> imageSet =
16  {
17  {"Dog.jpg", 208},
18  {"Cat.jpg", 281},
19  {"shark.jpg", 2},
20  };
21 
22  armnn::TensorShape inputTensorShape({ 1, 3, 224, 224 });
23 
24  using DataType = float;
25  using DatabaseType = ImagePreprocessor<float>;
26  using ParserType = armnnOnnxParser::IOnnxParser;
27  using ModelType = InferenceModel<ParserType, DataType>;
28 
29  // Coverity fix: ClassifierInferenceTestMain() may throw uncaught exceptions.
30  retVal = armnn::test::ClassifierInferenceTestMain<DatabaseType, ParserType>(
31  argc, argv,
32  "mobilenetv2-1.0.onnx", // model name
33  true, // model is binary
34  "data", "mobilenetv20_output_flatten0_reshape0", // input and output tensor names
35  { 0, 1, 2 }, // test images to test with as above
36  [&imageSet](const char* dataDir, const ModelType&) {
37  // This creates create a 1, 3, 224, 224 normalized input with mean and stddev to pass to Armnn
38  return DatabaseType(
39  dataDir,
40  224,
41  224,
42  imageSet,
43  255.0, // scale
44  {{0.485f, 0.456f, 0.406f}}, // mean
45  {{0.229f, 0.224f, 0.225f}}, // stddev
46  DatabaseType::DataFormat::NCHW); // format
47  },
48  &inputTensorShape);
49  }
50  catch (const std::exception& e)
51  {
52  // Coverity fix: BOOST_LOG_TRIVIAL (typically used to report errors) may throw an
53  // exception of type std::length_error.
54  // Using stderr instead in this context as there is no point in nesting try-catch blocks here.
55  std::cerr << "WARNING: OnnxMobileNet-Armnn: An error has occurred when running "
56  "the classifier inference tests: " << e.what() << std::endl;
57  }
58  return retVal;
59 }
int main(int argc, char *argv[])
DataType
Definition: Types.hpp:48