ArmNN
 22.08
ModelAccuracyCheckerTest.cpp File Reference
#include "ModelAccuracyChecker.hpp"
#include <armnnUtils/TContainer.hpp>
#include <doctest/doctest.h>
#include <iostream>
#include <string>

Go to the source code of this file.

Functions

 TEST_SUITE ("ModelAccuracyCheckerTest")
 

Function Documentation

◆ TEST_SUITE()

TEST_SUITE ( "ModelAccuracyCheckerTest"  )

Definition at line 54 of file ModelAccuracyCheckerTest.cpp.

References ModelAccuracyChecker::AddImageResult(), ModelAccuracyChecker::GetAccuracy(), and TEST_CASE_FIXTURE().

55 {
56 
57 TEST_CASE_FIXTURE(TestHelper, "TestFloat32OutputTensorAccuracy")
58 {
59  ModelAccuracyChecker checker(GetValidationLabelSet(), GetModelOutputLabels());
60 
61  // Add image 1 and check accuracy
62  std::vector<float> inferenceOutputVector1 = {0.05f, 0.10f, 0.70f, 0.15f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
63  armnnUtils::TContainer inference1Container(inferenceOutputVector1);
64  std::vector<armnnUtils::TContainer> outputTensor1;
65  outputTensor1.push_back(inference1Container);
66 
67  std::string imageName = "val_01.JPEG";
68  checker.AddImageResult<armnnUtils::TContainer>(imageName, outputTensor1);
69 
70  // Top 1 Accuracy
71  float totalAccuracy = checker.GetAccuracy(1);
72  CHECK(totalAccuracy == 100.0f);
73 
74  // Add image 2 and check accuracy
75  std::vector<float> inferenceOutputVector2 = {0.10f, 0.0f, 0.0f, 0.0f, 0.05f, 0.70f, 0.0f, 0.0f, 0.0f, 0.15f};
76  armnnUtils::TContainer inference2Container(inferenceOutputVector2);
77  std::vector<armnnUtils::TContainer> outputTensor2;
78  outputTensor2.push_back(inference2Container);
79 
80  imageName = "val_02.JPEG";
81  checker.AddImageResult<armnnUtils::TContainer>(imageName, outputTensor2);
82 
83  // Top 1 Accuracy
84  totalAccuracy = checker.GetAccuracy(1);
85  CHECK(totalAccuracy == 50.0f);
86 
87  // Top 2 Accuracy
88  totalAccuracy = checker.GetAccuracy(2);
89  CHECK(totalAccuracy == 100.0f);
90 
91  // Add image 3 and check accuracy
92  std::vector<float> inferenceOutputVector3 = {0.0f, 0.10f, 0.0f, 0.0f, 0.05f, 0.70f, 0.0f, 0.0f, 0.0f, 0.15f};
93  armnnUtils::TContainer inference3Container(inferenceOutputVector3);
94  std::vector<armnnUtils::TContainer> outputTensor3;
95  outputTensor3.push_back(inference3Container);
96 
97  imageName = "val_03.JPEG";
98  checker.AddImageResult<armnnUtils::TContainer>(imageName, outputTensor3);
99 
100  // Top 1 Accuracy
101  totalAccuracy = checker.GetAccuracy(1);
102  CHECK(totalAccuracy == 33.3333321f);
103 
104  // Top 2 Accuracy
105  totalAccuracy = checker.GetAccuracy(2);
106  CHECK(totalAccuracy == 66.6666641f);
107 
108  // Top 3 Accuracy
109  totalAccuracy = checker.GetAccuracy(3);
110  CHECK(totalAccuracy == 100.0f);
111 }
112 
113 }
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
mapbox::util::variant< std::vector< float >, std::vector< int >, std::vector< unsigned char >, std::vector< int8_t > > TContainer
Definition: TContainer.hpp:18