3#if _MSC_VER >= 1900 && defined(_M_X64)
5#include "ComputationalGraphObjectDetection.h"
6#include "ComputationalGraphMaskRCNN.h"
15 class CComputationalGraph;
18 class CComputationalGraphPlaceholder;
21 class CBackendEvaluatorBase;
24 class CBackendEvaluatorForObjectDetection;
27 class CBackendEvaluatorForInstanceSegmentation;
35 EModelType_Classifier = 0,
36 EModelType_SemanticSegmentation,
37 EModelType_ObjectDetection,
38 EModelType_InstanceSegmentation,
39 EModelType_AnomalyDetection,
40 EModelType_SuperResolution,
41 EModelType_DenoisingDiffusion,
42 EModelType_StringBasedOCR,
46 CEvaluator(
const CEvaluator<T>& evaluator);
47 CEvaluator(
const CEvaluator<T>* pEvaluator);
48 virtual ~CEvaluator();
50 virtual const CResult
Assign(
const CEvaluator<T>& evaluator);
51 virtual const CResult
Assign(
const CEvaluator<T>* pEvaluator);
53 virtual const CResult
Clear();
55 virtual const CResult Initialize();
56 virtual bool IsInitialized()
const;
58 virtual const CResult SetFunction(
const CComputationalGraph<T>* pCgEvaluationLayer);
59 virtual const CComputationalGraph<T>& GetFunction()
const;
61 virtual const CResult SetDeviceIndex(int32_t i32DeviceIndex);
62 virtual const CResult SetDeviceIndex(
const std::vector<int32_t>& vctDeviceIndices);
63 virtual const CResult SetDeviceIndex(
const std::vector<uint32_t>& vctDeviceIndices);
64 virtual const CResult SetDeviceIndex(
const Base::CFLArray<int32_t>& flaDeviceIndices);
65 virtual const CResult SetDeviceIndex(
const Base::CFLArray<uint32_t>& flaDeviceIndices);
66 virtual const std::vector<int32_t>& GetDeviceIndex()
const;
67 virtual const CResult ResetDeviceIndex();
69 virtual const CResult SetModelType(EModelType eModelType = EModelType_Classifier);
70 virtual EModelType GetModelType();
72 virtual const CResult SetMemoryLimitRatio(
double f64MemoryLimitRatio = 1.);
73 virtual double GetMemoryLimitRatio()
const;
75 virtual const CResult SetSamplingStep(int32_t i32TotalSamplingStep = 1000);
76 virtual int32_t GetSamplingStep()
const;
78 virtual const CResult EnableDecoder(
bool bDecoder =
false);
79 virtual bool IsDecoderEnabled()
const;
81 virtual const CResult Evaluate(Base::CFLArray<int32_t>* pFlaIterationFeedback =
nullptr,
bool* pBStopImmediatedly =
nullptr, std::vector<bool>* pVctEvaluatedIndex =
nullptr);
83 virtual const CTensor<T>* GetResultEvaluation()
const;
84 virtual const std::vector<std::vector<std::vector<std::tuple<CObjectBox<float>, float, int64_t>>>>* GetResultBox()
const;
85 virtual const CInstanceSegmentationResult<T>* GetInstanceSegmentationResult()
const;
86 virtual int64_t GetTotalIteration()
const;
87 virtual int64_t GetActualTotalBatchSize()
const;
89 virtual const Base::CFLArray<uint32_t> GetInvolvedDeviceIndices()
const;
91 DeclareGetClassType();
92 SupportToDuplicateAbstractObject(CEvaluator<T>);
95 virtual const CResult CopyBatchParams(
bool bDifferent);
96 virtual CBackendEvaluatorBase<T>* CreateNewBackendEvaluator();
99 std::vector<int32_t>& m_vctDeviceIndices;
100 std::vector<int32_t>& m_vctActiveDeviceIndices;
101 std::vector<int32_t>& m_vctDeviceInUse;
102 std::vector<int32_t>& m_vctPrevDeviceIndices;
104 CComputationalGraph<T>* m_pCgEvaluationLayer;
105 CTensor<T> m_tsrResult;
107 std::vector<CComputationalGraph<T>*>& m_vctFunctions;
112 int64_t m_i64InitialBatch;
114 int32_t m_i32DeviceCount;
116 int64_t m_i64ActualMiniBatchSize;
117 int64_t m_i64TotalIteration;
118 int64_t m_i64TotalIterationPerDevice;
119 int64_t m_i64TotalBatchSize;
120 int64_t m_i64CurrentIteration;
122 std::vector<CBackendEvaluatorBase<T>*>& m_vctEvaluator;
123 EModelType m_eModelType;
124 EModelType m_ePrevModelType;
126 std::vector<std::vector<std::vector<std::tuple<CObjectBox<float>, float, int64_t>>>>& m_vct3BoxResult;
127 CInstanceSegmentationResult<T> m_instanceSegmentationResult;
129 double m_f64MemoryLimitRatio;
130 double m_f64PrevMemoryLimitRatio;
132 int32_t m_i32TotalSamplingStep;
136 friend class CBackendEvaluatorBase;
139 friend class CBackendEvaluatorForObjectDetection;
142 friend class CBackendEvaluatorForInstanceSegmentation;
145 friend class CBackendEvaluatorForDenoisingDiffusion;
148 friend class CBackendEvaluatorForStringBasedOCR;
152 typedef CEvaluator<float> CEvaluatorF;
153 typedef CEvaluator<double> CEvaluatorD;
Processing unit AI class required by algorithm.
Definition AlgorithmAIBase.h:27
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