From add078b7f9a658d52ee6e8fe6771ea0517c07674 Mon Sep 17 00:00:00 2001 From: mathad01 Date: Mon, 10 May 2021 16:51:20 +0100 Subject: IVGCVSW-5908 Update 21.05 Doxygen Documents Signed-off-by: mathad01 Change-Id: I95316d4fc5f9d10185492dc835bb2411c1daea7b --- .../_model_accuracy_checker_test_8cpp_source.xhtml | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 21.05/_model_accuracy_checker_test_8cpp_source.xhtml (limited to '21.05/_model_accuracy_checker_test_8cpp_source.xhtml') diff --git a/21.05/_model_accuracy_checker_test_8cpp_source.xhtml b/21.05/_model_accuracy_checker_test_8cpp_source.xhtml new file mode 100644 index 0000000000..d36ef79d2b --- /dev/null +++ b/21.05/_model_accuracy_checker_test_8cpp_source.xhtml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + +ArmNN: src/armnn/test/ModelAccuracyCheckerTest.cpp Source File + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  21.05 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ModelAccuracyCheckerTest.cpp
+
+
+Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
6 
7 #include <boost/test/unit_test.hpp>
8 
9 #include <iostream>
10 #include <string>
11 
12 using namespace armnnUtils;
13 
14 namespace {
15 struct TestHelper
16 {
17  const std::map<std::string, std::string> GetValidationLabelSet()
18  {
19  std::map<std::string, std::string> validationLabelSet;
20  validationLabelSet.insert(std::make_pair("val_01.JPEG", "goldfinch"));
21  validationLabelSet.insert(std::make_pair("val_02.JPEG", "magpie"));
22  validationLabelSet.insert(std::make_pair("val_03.JPEG", "brambling"));
23  validationLabelSet.insert(std::make_pair("val_04.JPEG", "robin"));
24  validationLabelSet.insert(std::make_pair("val_05.JPEG", "indigo bird"));
25  validationLabelSet.insert(std::make_pair("val_06.JPEG", "ostrich"));
26  validationLabelSet.insert(std::make_pair("val_07.JPEG", "jay"));
27  validationLabelSet.insert(std::make_pair("val_08.JPEG", "snowbird"));
28  validationLabelSet.insert(std::make_pair("val_09.JPEG", "house finch"));
29  validationLabelSet.insert(std::make_pair("val_09.JPEG", "bulbul"));
30 
31  return validationLabelSet;
32  }
33  const std::vector<armnnUtils::LabelCategoryNames> GetModelOutputLabels()
34  {
35  const std::vector<armnnUtils::LabelCategoryNames> modelOutputLabels =
36  {
37  {"ostrich", "Struthio camelus"},
38  {"brambling", "Fringilla montifringilla"},
39  {"goldfinch", "Carduelis carduelis"},
40  {"house finch", "linnet", "Carpodacus mexicanus"},
41  {"junco", "snowbird"},
42  {"indigo bunting", "indigo finch", "indigo bird", "Passerina cyanea"},
43  {"robin", "American robin", "Turdus migratorius"},
44  {"bulbul"},
45  {"jay"},
46  {"magpie"}
47  };
48  return modelOutputLabels;
49  }
50 };
51 }
52 
53 BOOST_AUTO_TEST_SUITE(ModelAccuracyCheckerTest)
54 
55 using TContainer =
56  mapbox::util::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char>, std::vector<int8_t>>;
57 
58 BOOST_FIXTURE_TEST_CASE(TestFloat32OutputTensorAccuracy, TestHelper)
59 {
60  ModelAccuracyChecker checker(GetValidationLabelSet(), GetModelOutputLabels());
61 
62  // Add image 1 and check accuracy
63  std::vector<float> inferenceOutputVector1 = {0.05f, 0.10f, 0.70f, 0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
64  TContainer inference1Container(inferenceOutputVector1);
65  std::vector<TContainer> outputTensor1;
66  outputTensor1.push_back(inference1Container);
67 
68  std::string imageName = "val_01.JPEG";
69  checker.AddImageResult<TContainer>(imageName, outputTensor1);
70 
71  // Top 1 Accuracy
72  float totalAccuracy = checker.GetAccuracy(1);
73  BOOST_CHECK(totalAccuracy == 100.0f);
74 
75  // Add image 2 and check accuracy
76  std::vector<float> inferenceOutputVector2 = {0.10f, 0.0f, 0.0f, 0.0f, 0.05f, 0.70f, 0.0f, 0.0f, 0.0f, 0.15f};
77  TContainer inference2Container(inferenceOutputVector2);
78  std::vector<TContainer> outputTensor2;
79  outputTensor2.push_back(inference2Container);
80 
81  imageName = "val_02.JPEG";
82  checker.AddImageResult<TContainer>(imageName, outputTensor2);
83 
84  // Top 1 Accuracy
85  totalAccuracy = checker.GetAccuracy(1);
86  BOOST_CHECK(totalAccuracy == 50.0f);
87 
88  // Top 2 Accuracy
89  totalAccuracy = checker.GetAccuracy(2);
90  BOOST_CHECK(totalAccuracy == 100.0f);
91 
92  // Add image 3 and check accuracy
93  std::vector<float> inferenceOutputVector3 = {0.0f, 0.10f, 0.0f, 0.0f, 0.05f, 0.70f, 0.0f, 0.0f, 0.0f, 0.15f};
94  TContainer inference3Container(inferenceOutputVector3);
95  std::vector<TContainer> outputTensor3;
96  outputTensor3.push_back(inference3Container);
97 
98  imageName = "val_03.JPEG";
99  checker.AddImageResult<TContainer>(imageName, outputTensor3);
100 
101  // Top 1 Accuracy
102  totalAccuracy = checker.GetAccuracy(1);
103  BOOST_CHECK(totalAccuracy == 33.3333321f);
104 
105  // Top 2 Accuracy
106  totalAccuracy = checker.GetAccuracy(2);
107  BOOST_CHECK(totalAccuracy == 66.6666641f);
108 
109  // Top 3 Accuracy
110  totalAccuracy = checker.GetAccuracy(3);
111  BOOST_CHECK(totalAccuracy == 100.0f);
112 }
113 
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
+
BOOST_FIXTURE_TEST_CASE(TestFloat32OutputTensorAccuracy, TestHelper)
+ +
float GetAccuracy(unsigned int k)
Get Top K accuracy.
+
void AddImageResult(const std::string &imageName, std::vector< TContainer > outputTensor)
Record the prediction result of an image.
+
BOOST_AUTO_TEST_SUITE_END()
+ +
mapbox::util::variant< std::vector< float >, std::vector< int >, std::vector< unsigned char >, std::vector< int8_t > > TContainer
+ +
+
+ + + + -- cgit v1.2.1