FLImaging 6.5.16.1
ClassEqualizerBase.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5namespace FLImaging
6{
7 namespace AI
8 {
9 template <typename T>
10 class CTensor;
11
12 template <typename T>
13 class FL_EXPORT CClassEqualizerBase : public Base::CFLBase
14 {
15 public:
16 CClassEqualizerBase();
17 CClassEqualizerBase(const CClassEqualizerBase& lrs);
18 CClassEqualizerBase(const CClassEqualizerBase* pLrs);
19 virtual ~CClassEqualizerBase();
20
21 virtual const CResult Assign(const CClassEqualizerBase& lrs);
22 virtual const CResult Assign(const CClassEqualizerBase* pLrs);
23
24 virtual const CResult Clear();
25 virtual const CResult Initialize();
26
27 virtual const CResult SetBatchTensor(CTensor<T>* pTsrBatchTensor);
28 virtual const CTensor<T>* GetBatchTensor() const;
29
30 virtual const CResult EnableClassEqaulization(bool bEnable);
31 virtual bool IsClassEqaulizationEnabled() const;
32
33 virtual const CResult ArrangeBatch(int64_t i64BatchSize, int64_t i64SubMiniBatchSize, std::vector<int64_t>& vctResultBatchIndices, int64_t i64TotalIteration = 0);
34
35 virtual const std::vector<int64_t>& GetOriginOrders() const;
36
37
38 DeclareGetClassType();
39 SupportToDuplicateObject(CClassEqualizerBase, *this);
40 protected:
41 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const override;
42
43 protected:
44 CTensor<T>* m_pTsrBatchTensor;
45 std::vector<int64_t>& m_vctLearnOrders;
46 bool m_bClassEqualization;
47
48 private:
49 template<typename T>
50 friend class COptimizer;
51 };
52
53
54 typedef CClassEqualizerBase<float> CClassEqualizerBaseF;
55 typedef CClassEqualizerBase<double> CClassEqualizerBaseD;
56
57 typedef CClassEqualizerBase<float> CCEBaseF;
58 typedef CClassEqualizerBase<double> CCEBaseD;
59
60 template <typename T>
61 using CCEBase = CClassEqualizerBase<T>;
62 }
63}
64
65#endif
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
@ Clear
Clear all the figure objects.