FLImaging 7.8.25.3
ValidatorBase.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include <atomic>
6
7namespace FLImaging
8{
9 namespace AI
10 {
11 template <typename T>
12 class CComputationalGraph;
13
14 template<typename T>
15 class CInternalOptimizerBase;
16
17 template<typename T>
18 class CComputationalGraphPlaceholder;
19
20 template<typename T>
21 class CTensor;
22
23 class CUnorderdSetData;
24
25 template <typename T>
26 class FL_EXPORT CValidatorBase : public Base::CFLBase
27 {
28
29 public:
30 CValidatorBase();
31 CValidatorBase(const CValidatorBase<T>& validator);
32 CValidatorBase(const CValidatorBase<T>* pValidator);
33 virtual ~CValidatorBase();
34
35 virtual const CResult Assign(const CValidatorBase<T>& validator);
36 virtual const CResult Assign(const CValidatorBase<T>* pValidator);
37
38 virtual const CResult Clear();
39
40 virtual const CResult Initialize();
41
42 virtual const CResult SetOptimizer(const CInternalOptimizerBase<T>* pOptimizer);
43 virtual const CInternalOptimizerBase<T>* GetOptimizer() const;
44
45 virtual const CResult SetValidationLabels(CTensor<T>* pTsrValidationLabels);
46 virtual const CResult SetValidationLabels(const std::vector<CTensor<T>*>& vctValidationLabels);
47 virtual const CResult SetValidationLabels(const std::vector<CTensor<T>*>* pVctValidationLabels);
48 virtual const CTensor<T>* GetValidationLabels(int64_t i64Index = 0) const;
49 virtual const CResult GetValidationLabels(std::vector<CTensor<T>*>& vctValidationLabels) const;
50 virtual int64_t GetValidationLabelCount() const;
51
52 virtual const CResult SetValidationFunctions(const CComputationalGraph<T>* pCgLabelLayer, const CComputationalGraph<T>* pCgValidationLayer);
53
54 virtual const CResult SetObjectAugmentationFigureInformation(const Foundation::CFLFigureArray* pFlfaObjectAugmentationSrcFigureArray, const Foundation::CFLFigureArray* pVctObjectAugmentationBoundaryRect, const CUnorderdSetData* pUsdObjectAugmentationFigureMap);
55 virtual const CResult GetObjectAugmentationFigureInformation(const Foundation::CFLFigureArray** ppFlfaObjectAugmentationSrcFigureArray, const Foundation::CFLFigureArray** ppVctObjectAugmentationBoundaryRect, const CUnorderdSetData** ppUsdObjectAugmentationFigureMap);
56
57 virtual const CResult SetObjectAugmentationSourceImage(const Base::CFLImage* pFliObjectAugmentationSourceImage);
58 virtual const CResult SetObjectAugmentationUserDefinedImage(const Base::CFLImage* pFliObjectAugmentationUserDefinedImage);
59
60 virtual const Base::CFLImage* GetObjectAugmentationSourceImage();
61 virtual const Base::CFLImage* GetObjectAugmentationUserDefinedImage();
62
63 virtual const CResult GetValidationFunctions(CComputationalGraph<T>** ppCgLabelLayer, CComputationalGraph<T>** ppCgValidationLayer) const;
64
65 virtual T Validate(int32_t* pI32IterationFeedback = nullptr) = 0;
66
67 DeclareGetClassType();
68 SupportToDuplicateAbstractObject(CValidatorBase<T>);
69
70 protected:
71 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const override;
72 virtual const CResult InitializeMiniBatch();
73 virtual const CResult InitializeCurrentIteration(int64_t i64IterationIndex = 0);
74 virtual const CResult LoadTensor(int64_t i64IterationIndex = 0);
75
76 protected:
77 CComputationalGraph<T>* m_pCgLabelLayer;
78 CComputationalGraph<T>* m_pCgValidationLayer;
79 CInternalOptimizerBase<T>* m_pOptimizer;
80 std::vector<CTensor<T>*>& m_vctValidationLabels;
81
82 std::vector<CTensor<T>*>& m_vctOrgTensors;
83 std::vector<CTensor<T>*>& m_vctBatchTensors;
84 std::vector<CComputationalGraphPlaceholder<T>*>& m_vctPlaceholders;
85
86 bool m_bDifferentLearningObjectAugmentationParameters;
87 const Base::CFLImage* m_pFliObjectAugmentationSourceImage;
88 const Base::CFLImage* m_pFliObjectAugmentationUserDefinedImage;
89
90 const Foundation::CFLFigureArray* m_pFlfaObjectAugmentationSrcFigureArray;
91 const Foundation::CFLFigureArray* m_pVctObjectAugmentationFigureBoundaryRect;
92 const CUnorderdSetData* m_pUsdObjectAugmentationFigureMap;
93
94 bool m_bDifferent;
95 bool m_bValidationAugmentationEnable;
96 bool m_bLearningAugmentationEnable;
97 bool m_bDifferentAugmentation;
98
99 int64_t m_i64InitialBatch;
100
101 std::vector<CTensor<T>*>& m_vctDelayedLoader;
102
103 volatile int64_t m_i64LoadCount;
104 volatile bool m_bValidationTerminate;
105 volatile bool m_bLoadNextIteration;
106 volatile bool m_bObjectAugmentationPrefeched;
107 volatile bool m_bEndSubdivision;
108 CResult m_resLoadTensorResult;
109 private:
110 template<typename T>
111 friend class COptimizer;
112
113 template<typename T>
114 friend class CInternalOptimizerBase;
115
116 template<typename T>
117 friend class COptimizerForStringBasedOCR;
118 };
119
120
121 typedef CValidatorBase<float> CValidatorBaseF;
122 typedef CValidatorBase<double> CValidatorBaseD;
123 }
124}
125
126#endif
Definition AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:3531
@ Clear
Clear all the figure objects.
Definition DefinitionsGUI.h:5083