FLImaging 6.5.16.1
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 Step(T tLoss = 0) = 0;
35
36
37 DeclareGetClassType();
38 SupportToDuplicateAbstractObject(CLearningRateSchedulerBase<T>);
39
40 protected:
41 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const override;
42
43 protected:
44 int64_t m_i64CurrentBatchIteration;
45 int64_t m_i64BurnInBatchIteration;
46 int64_t m_i64CurrentSteps;
47
48 T m_tCurrentLearingRate;
49 T m_tOriginLearningRate;
50 bool m_bInitialized;
51 };
52
53
54 typedef CLearningRateSchedulerBase<float> CLearningRateSchedulerBaseF;
55 typedef CLearningRateSchedulerBase<double> CLearningRateSchedulerBaseD;
56
57 typedef CLearningRateSchedulerBase<float> CLRSBaseF;
58 typedef CLearningRateSchedulerBase<double> CLRSBaseD;
59
60 template <typename T>
61 using CLRSBase = CLearningRateSchedulerBase<T>;
62
63 }
64}
65
66#endif
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
@ Clear
Clear all the figure objects.