FLImaging 7.8.25.3
LearningRateSchedulerBase.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 FL_EXPORT CLearningRateSchedulerBase : public Base::CFLBase
11 {
12 public:
13 CLearningRateSchedulerBase();
14 CLearningRateSchedulerBase(const CLearningRateSchedulerBase<T>& lrs);
15 CLearningRateSchedulerBase(const CLearningRateSchedulerBase<T>* pLrs);
16
17 virtual ~CLearningRateSchedulerBase();
18
19 virtual const CResult Assign(const CLearningRateSchedulerBase<T>& lrs);
20 virtual const CResult Assign(const CLearningRateSchedulerBase<T>* pLrs);
21
22 virtual const CResult Clear();
23 virtual const CResult Initialize();
24
25 virtual const CResult SetBurnInBatchIteration(int64_t i64BurnInBatchIteration);
26 virtual int64_t GetBurnInBatchIteration() const;
27 virtual const CResult AddBatchIteration(int64_t i64BatchCount);
28 virtual bool IsBurnIn() const;
29
30 virtual const CResult SetLearningRate(T tLearningRate = 1e-3);
31 virtual T GetLearningRate() const;
32 virtual T GetCurrentLearningRate() const;
33
34 virtual const CResult SetWarmupStep(int64_t i64WarmupStep = 0);
35 virtual int64_t GetWarmupStep() const;
36
37 virtual const CResult Step(T tLoss = 0) = 0;
38
39
40 DeclareGetClassType();
41 SupportToDuplicateAbstractObject(CLearningRateSchedulerBase<T>);
42
43 protected:
44 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const override;
45
46 protected:
47 int64_t m_i64CurrentBatchIteration;
48 int64_t m_i64BurnInBatchIteration;
49 int64_t m_i64CurrentSteps;
50 int64_t m_i64WarmupStep;
51
52 T m_tCurrentLearingRate;
53 T m_tOriginLearningRate;
54 bool m_bInitialized;
55 };
56
57
58 typedef CLearningRateSchedulerBase<float> CLearningRateSchedulerBaseF;
59 typedef CLearningRateSchedulerBase<double> CLearningRateSchedulerBaseD;
60
61 typedef CLearningRateSchedulerBase<float> CLRSBaseF;
62 typedef CLearningRateSchedulerBase<double> CLRSBaseD;
63
64 template <typename T>
65 using CLRSBase = CLearningRateSchedulerBase<T>;
66
67 }
68}
69
70#endif
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