FLImaging 7.2.4.2
ValidatorForClassifier.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "ValidatorBase.h"
6#include "Tensor.h"
7
8namespace FLImaging
9{
10 namespace AI
11 {
12 template <typename T>
13 class FL_EXPORT CValidatorForClassifier : public CValidatorBase<T>
14 {
15
16 public:
17 CValidatorForClassifier();
18 CValidatorForClassifier(const CValidatorForClassifier<T>& validator);
19 CValidatorForClassifier(const CValidatorForClassifier<T>* pValidator);
20 virtual ~CValidatorForClassifier();
21
22 const CValidatorForClassifier<T>& operator=(const CValidatorForClassifier<T>& validator);
23
24 virtual const CResult Initialize() override;
25 virtual const CResult Clear() override;
26
27 virtual const CResult Assign(const CValidatorForClassifier<T>& validator);
28 virtual const CResult Assign(const CValidatorForClassifier<T>* pValidator);
29
30 virtual T Validate(int32_t* pI32IterationFeedback = nullptr) override;
31
32 static const CResult AccumulateConfusionMatrix(const CTensor<T>* pTsrPredictMemory, const CTensor<T>* pTsrAnswerMemory, int64_t i64BatchCount, CTensor<double>* pTsrConfusionMatrix, int64_t i64ClassCount, int64_t i64IgnoreIndex = -1);
33
34 static const CResult IntegrationConfusionMatrix(std::vector<const CTensor<double>*>& vctCM, CTensor<double>& tsrResultCM);
35 static const CResult CalculateF1(const int64_t* pI64ConfusionMatrix, T& tResultF1, int64_t i64ClassCount);
36 static const CResult CalculateMacroAccuracy(const int64_t* pI64ConfusionMatrix, T& tResultF1, int64_t i64ClassCount);
37
38 const CTensor<double>& GetConfusionMatrix() const;
39
40 DeclareGetClassType();
41 SupportToDuplicateObject(CValidatorForClassifier<T>, *this);
42
43 protected:
44
45 private:
46 template<typename T>
47 friend class COptimizer;
48 template<typename T>
49 friend class CValidatorForSemanticSegmentation;
50
51 protected:
52 CTensor<double> m_tsrCM;
53 Base::CFLArray<Base::CFLArray<int32_t>> m_flaClassNum;
54 Base::CFLArray<Base::CFLBase*> m_flaLearningIndividualAugmentationParams;
55 Base::CFLArray<Base::CFLBase*> m_flaValidationIndividualAugmentationParams;
56 bool m_bValidationIndividualAugmentationEnable;
57 bool m_bDifferentIndividualAugmentation;
58 };
59
60
61 typedef CValidatorForClassifier<float> CValidatorForClassifierF;
62 typedef CValidatorForClassifier<double> CValidatorForClassifierD;
63 }
64}
65
66#endif
Definition AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2930
@ Clear
Clear all the figure objects.
Definition DefinitionsGUI.h:2158