FLImaging 7.2.4.2
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 template <typename T>
24 class FL_EXPORT CValidatorBase : public Base::CFLBase
25 {
26
27 public:
28 CValidatorBase();
29 CValidatorBase(const CValidatorBase<T>& validator);
30 CValidatorBase(const CValidatorBase<T>* pValidator);
31 virtual ~CValidatorBase();
32
33 virtual const CResult Assign(const CValidatorBase<T>& validator);
34 virtual const CResult Assign(const CValidatorBase<T>* pValidator);
35
36 virtual const CResult Clear();
37
38 virtual const CResult Initialize();
39
40 virtual const CResult SetOptimizer(const CInternalOptimizerBase<T>* pOptimizer);
41 virtual const CInternalOptimizerBase<T>* GetOptimizer() const;
42
43 virtual const CResult SetValidationLabels(CTensor<T>* pTsrValidationLabels);
44 virtual const CResult SetValidationLabels(const std::vector<CTensor<T>*>& vctValidationLabels);
45 virtual const CResult SetValidationLabels(const std::vector<CTensor<T>*>* pVctValidationLabels);
46 virtual const CTensor<T>* GetValidationLabels(int64_t i64Index = 0) const;
47 virtual const CResult GetValidationLabels(std::vector<CTensor<T>*>& vctValidationLabels) const;
48 virtual int64_t GetValidationLabelCount() const;
49
50 virtual const CResult SetValidationFunctions(const CComputationalGraph<T>* pCgLabelLayer, const CComputationalGraph<T>* pCgValidationLayer);
51
52 virtual const CResult SetObjectAugmentationFigureInformation(const Foundation::CFLFigureArray* pFlfaObjectAugmentationSrcFigureArray, const std::vector <std::vector < int64_t >>* pVctClassNum, const std::vector<std::vector<Foundation::CFLRect<T>>>* pVctObjectAugmentationBoundaryRect);
53 virtual const CResult GetObjectAugmentationFigureInformation(const Foundation::CFLFigureArray** ppFlfaObjectAugmentationSrcFigureArray, const std::vector <std::vector < int64_t >>** ppVctClassNum, const std::vector<std::vector<Foundation::CFLRect<T>>>** ppVctObjectAugmentationBoundaryRect);
54
55 virtual const CResult SetObjectAugmentationSourceImage(const Base::CFLImage* pFliObjectAugmentationSourceImage);
56 virtual const CResult SetObjectAugmentationUserDefinedImage(const Base::CFLImage* pFliObjectAugmentationUserDefinedImage);
57
58 virtual const Base::CFLImage* GetObjectAugmentationSourceImage();
59 virtual const Base::CFLImage* GetObjectAugmentationUserDefinedImage();
60
61 virtual const CResult GetValidationFunctions(CComputationalGraph<T>** ppCgLabelLayer, CComputationalGraph<T>** ppCgValidationLayer) const;
62
63 virtual T Validate(int32_t* pI32IterationFeedback = nullptr) = 0;
64
65 DeclareGetClassType();
66 SupportToDuplicateAbstractObject(CValidatorBase<T>);
67
68 protected:
69 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const override;
70 virtual const CResult InitializeMiniBatch();
71 virtual const CResult InitializeCurrentIteration(int64_t i64IterationIndex = 0);
72 virtual const CResult LoadTensor(int64_t i64IterationIndex = 0);
73
74 protected:
75 CComputationalGraph<T>* m_pCgLabelLayer;
76 CComputationalGraph<T>* m_pCgValidationLayer;
77 CInternalOptimizerBase<T>* m_pOptimizer;
78 std::vector<CTensor<T>*>& m_vctValidationLabels;
79
80 std::vector<CTensor<T>*>& m_vctOrgTensors;
81 std::vector<CTensor<T>*>& m_vctBatchTensors;
82 std::vector<CComputationalGraphPlaceholder<T>*>& m_vctPlaceholders;
83
84 bool m_bDifferentLearningObjectAugmentationParameters;
85 const Base::CFLImage* m_pFliObjectAugmentationSourceImage;
86 const Base::CFLImage* m_pFliObjectAugmentationUserDefinedImage;
87
88 const Foundation::CFLFigureArray* m_pFlfaObjectAugmentationSrcFigureArray;
89 const std::vector< std::vector<int64_t>>* m_pVctObjectAugmentationClassNum;
90 const std::vector<std::vector<Foundation::CFLRect<T>>>* m_pVctObjectAugmentationFigureBoundaryRect;
91
92 bool m_bDifferent;
93 bool m_bValidationAugmentationEnable;
94 bool m_bLearningAugmentationEnable;
95 bool m_bDifferentAugmentation;
96
97 int64_t m_i64InitialBatch;
98
99 std::vector<CTensor<T>*>& m_vctDelayedLoader;
100
101 volatile int64_t m_i64LoadCount;
102 volatile bool m_bValidationTerminate;
103 volatile bool m_bLoadNextIteration;
104 volatile bool m_bObjectAugmentationPrefeched;
105 volatile bool m_bEndSubdivision;
106 CResult m_resLoadTensorResult;
107 private:
108 template<typename T>
109 friend class COptimizer;
110
111 template<typename T>
112 friend class CInternalOptimizerBase;
113
114 template<typename T>
115 friend class COptimizerForStringBasedOCR;
116 };
117
118
119 typedef CValidatorBase<float> CValidatorBaseF;
120 typedef CValidatorBase<double> CValidatorBaseD;
121 }
122}
123
124#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