ArmNN
 20.02
ModelAccuracyCheckerTest.cpp File Reference
#include "ModelAccuracyChecker.hpp"
#include <boost/algorithm/string.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/filesystem.hpp>
#include <boost/optional.hpp>
#include <boost/variant.hpp>
#include <iostream>
#include <string>

Go to the source code of this file.

Typedefs

using TContainer = boost::variant< std::vector< float >, std::vector< int >, std::vector< unsigned char > >
 

Functions

 BOOST_FIXTURE_TEST_CASE (TestFloat32OutputTensorAccuracy, TestHelper)
 

Typedef Documentation

◆ TContainer

using TContainer = boost::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char> >

Definition at line 59 of file ModelAccuracyCheckerTest.cpp.

Function Documentation

◆ BOOST_FIXTURE_TEST_CASE()

BOOST_FIXTURE_TEST_CASE ( TestFloat32OutputTensorAccuracy  ,
TestHelper   
)

Definition at line 61 of file ModelAccuracyCheckerTest.cpp.

References ModelAccuracyChecker::AddImageResult(), BOOST_AUTO_TEST_SUITE_END(), BOOST_CHECK(), and ModelAccuracyChecker::GetAccuracy().

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