aboutsummaryrefslogtreecommitdiff
path: root/tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp')
-rw-r--r--tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp b/tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
new file mode 100644
index 0000000000..0d2d937469
--- /dev/null
+++ b/tests/OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
@@ -0,0 +1,60 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+#include "../InferenceTest.hpp"
+#include "../ImagePreprocessor.hpp"
+#include "armnnOnnxParser/IOnnxParser.hpp"
+
+int main(int argc, char* argv[])
+{
+ int retVal = EXIT_FAILURE;
+ try
+ {
+ // Coverity fix: The following code may throw an exception of type std::length_error.
+ std::vector<ImageSet> imageSet =
+ {
+ {"Dog.jpg", 208},
+ {"Cat.jpg", 281},
+ {"shark.jpg", 2},
+ };
+
+ armnn::TensorShape inputTensorShape({ 1, 3, 224, 224 });
+
+ using DataType = float;
+ using DatabaseType = ImagePreprocessor<float>;
+ using ParserType = armnnOnnxParser::IOnnxParser;
+ using ModelType = InferenceModel<ParserType, DataType>;
+
+ // Coverity fix: ClassifierInferenceTestMain() may throw uncaught exceptions.
+ retVal = armnn::test::ClassifierInferenceTestMain<DatabaseType, ParserType>(
+ argc, argv,
+ "mobilenetv2-1.0.onnx", // model name
+ true, // model is binary
+ "data", "mobilenetv20_output_flatten0_reshape0", // input and output tensor names
+ { 0, 1, 2 }, // test images to test with as above
+ [&imageSet](const char* dataDir, const ModelType&) {
+ // This creates create a 1, 3, 224, 224 normalized input with mean and stddev to pass to Armnn
+ return DatabaseType(
+ dataDir,
+ 224,
+ 224,
+ imageSet,
+ 1.0, // scale
+ 0, // offset
+ {{0.485f, 0.456f, 0.406f}}, // mean
+ {{0.229f, 0.224f, 0.225f}}, // stddev
+ DatabaseType::DataFormat::NCHW); // format
+ },
+ &inputTensorShape);
+ }
+ catch (const std::exception& e)
+ {
+ // Coverity fix: BOOST_LOG_TRIVIAL (typically used to report errors) may throw an
+ // exception of type std::length_error.
+ // Using stderr instead in this context as there is no point in nesting try-catch blocks here.
+ std::cerr << "WARNING: OnnxMobileNet-Armnn: An error has occurred when running "
+ "the classifier inference tests: " << e.what() << std::endl;
+ }
+ return retVal;
+}