FLImaging 6.5.16.1
InternalOptimizerStochasticGradientDescent.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "InternalOptimizerGradientDescent.h"
6
7namespace FLImaging
8{
9 namespace AI
10 {
11 template <typename T>
12 class CComputationalBase;
13
14 template <typename T>
15 class CComputationalGraphPlaceholder;
16
17 template <typename T>
18 class CComputationalGraphAugmentationBase;
19
20 template <typename T>
21 class CClassEqualizerBase;
22
23 template <typename T>
24 class CTensor;
25
26 template <typename T>
27 class FL_EXPORT CInternalOptimizerStochasticGradientDescent : public CInternalOptimizerGradientDescent<T>
28 {
29 public:
30 CInternalOptimizerStochasticGradientDescent();
31 CInternalOptimizerStochasticGradientDescent(const CInternalOptimizerStochasticGradientDescent<T>& ob);
32
33 virtual ~CInternalOptimizerStochasticGradientDescent();
34
35 virtual const CResult Assign(const CInternalOptimizerStochasticGradientDescent<T>& ob);
36 virtual const CResult Assign(const CInternalOptimizerStochasticGradientDescent<T>* pOb);
37
38 virtual CInternalOptimizerBase<T>* Clone() const override;
39
40 virtual const CResult Initialize() override;
41
42 virtual const CResult Fit(T* pClippingThreshold = nullptr, int32_t* pI32IterationFeedbackFeedback = nullptr) override;
43 virtual T Validate(int32_t* pI32Iteration = nullptr) override;
44
45 virtual const CResult SetMiniBatchSize(int64_t i64Size);
46 virtual int64_t GetMiniBatchSize() const;
47 virtual int64_t GetTotalIteration() const override;
48
49 virtual const CResult InitializeMiniBatch() override;
50
51 virtual const CResult EnableAutoSubdivision(bool bAutoSubdivision);
52 virtual bool IsAutoSubdivisionEnabled() const;
53
54 virtual const CResult EnableIterationMode(bool bIterationMode);
55 virtual bool IsIterationModeEnabled() const;
56
57 virtual const CResult SetSubdivisionMultiplier(int64_t i64SubdivisionMultiplier = 1);
58 virtual int64_t GetSubdivisionMultiplier() const;
59
60 DeclareGetClassType();
61
62 protected:
63 virtual int64_t GetRemainingIteration() const;
64 virtual const CResult TerminateCurrentIteration();
65
66 virtual int64_t GetMaxMiniBatchSize() const;
67 virtual int64_t GetActualMiniBatchSize() const;
68
69 protected:
70 bool m_bBatchSizeInitialized;
71
72 bool m_bAutoSubdivision;
73 bool m_bIterationMode;
74 int64_t m_i64SubdivisionMultiplier;
75 private:
76 template<typename T>
77 friend class CValidatorBase;
78
79 template<typename T>
80 friend class CValidatorForClassifier;
81
82 template<typename T>
83 friend class CValidatorForSemanticSegmentation;
84
85 template<typename T>
86 friend class CValidatorForObjectDetection;
87
88 template<typename T>
89 friend class COptimizer;
90 };
91
92 typedef CInternalOptimizerStochasticGradientDescent<float> CInternalOptimizerStochasticGradientDescentF;
93 typedef CInternalOptimizerStochasticGradientDescent<double> CInternalOptimizerStochasticGradientDescentD;
94
95 typedef CInternalOptimizerStochasticGradientDescent<float> CInternalOptimizerSGDF;
96 typedef CInternalOptimizerStochasticGradientDescent<double> CInternalOptimizerSGDD;
97
98 template <typename T>
99 using CInternalOptimizerSGD = CInternalOptimizerStochasticGradientDescent<T>;
100 }
101}
102
103#endif
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.