3#if _MSC_VER >= 1900 && defined(_M_X64)
5#include "DefinitionsAI.h"
6#include "BackendBase.h"
14 class CComputationalGraphPlaceholder;
20 class CComputationalGraphUtilities;
23 class CBackendEvaluatorForObjectDetection;
26 class CBackendEvaluatorForInstanceSegmentation;
29 class FL_EXPORT CBackendEvaluatorBase :
public CBackendBase<T>
32 CBackendEvaluatorBase();
33 CBackendEvaluatorBase(CEvaluator<T>* pEvaluator);
34 CBackendEvaluatorBase(CBackendEvaluatorBase<T>& evaluator);
35 CBackendEvaluatorBase(CBackendEvaluatorBase<T>* pEvaluator);
36 virtual ~CBackendEvaluatorBase();
38 virtual const CResult
Clear()
override;
40 virtual const CResult
Assign(CBackendEvaluatorBase<T>& evaluator);
41 virtual const CResult
Assign(CBackendEvaluatorBase<T>* pEvaluator);
43 virtual const CResult Initialize();
45 virtual const CResult Evaluate(int32_t* pI32IterationFeedback =
nullptr,
bool* pBStopImmediatedly =
nullptr, std::vector<bool>* pVctEvaluatedIndex =
nullptr);
47 virtual const CResult SetEvaluatorIndex(int64_t i64EvaluatorIndex);
48 virtual int64_t GetEvaluatorIndex()
const;
50 virtual const CResult SetMemoryLimitRatio(
double f64MemoryLimitRatio);
51 virtual double GetMemoryLimitRatio()
const;
53 virtual const CTensor<T>* GetResult()
const;
55 virtual const CResult SetProcessingUnit(
const Base::CProcessingUnitBase& pub)
override;
56 virtual const CResult SetProcessingUnit(
const Base::CProcessingUnitBase* pPub)
override;
58 DeclareGetClassType();
59 SupportToDuplicateObject(CBackendEvaluatorBase<T>);
62 virtual void Throw(
const CResult& res,
const wchar_t* pWcsExtraMessage =
nullptr)
const override;
64 virtual const CResult InitializeMiniBatch();
65 virtual const CResult MakeBatchTensor(
bool bDifferent);
66 virtual const CResult LoadTensor(int64_t i64IterationIndex = 0);
67 virtual const CResult InitializeCurrentIteration(int64_t i64IterationIndex = 0);
69 std::vector<CTensor<T>*>& m_vctOrgTensors;
70 std::vector<CTensor<T>*>& m_vctBatchTensors;
71 std::vector<CComputationalGraphPlaceholder<T>*>& m_vctPlaceholders;
73 CEvaluator<T>* m_pEvaluator;
74 CTensor<T> m_tsrResult;
76 int64_t m_i64EvaluatorIndex;
78 int64_t m_i64ActualMiniBatchSize;
79 int64_t m_i64AvailableMiniBatchSize;
80 int64_t m_i64TotalIteration;
81 int64_t m_i64TotalBatchSize;
82 int64_t m_i64CurrentIteration;
84 int64_t m_i64PrevInputSize;
85 int64_t m_i64PrevPlaceholderSize;
86 std::vector<std::tuple<ENodeType, EDataType, EValueAttribute, ENodeOperator, std::vector<int64_t>>>& m_vctPrevInputInfo;
87 std::vector<std::vector<int64_t>>& m_vctPrevPlaceholderShape;
91 std::vector<CTensor<T>*>& m_vctDelayedLoader;
92 volatile int64_t m_i64LoadCount;
93 volatile bool m_bEvaluationTerminate;
94 volatile bool m_bLoadNextIteration;
95 volatile bool m_bEndSubdivision;
96 CResult m_resLoadTensorResult;
98 double m_f64MemoryLimitRatio;
100 template <
typename T>
101 friend class CComputationalGraphUtilities;
103 template <
typename T>
104 friend class CEvaluator;
106 template <
typename T>
107 friend class CBackendEvaluatorForObjectDetection;
109 template <
typename T>
110 friend class CBackendEvaluatorForInstanceSegmentation;
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
@ Clear
Clear all the figure objects.