FLImaging 6.5.16.1
InternalOptimizerMomentumGradientDescent.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "InternalOptimizerStochasticGradientDescent.h"
6
7namespace FLImaging
8{
9 namespace AI
10 {
11 template <typename T>
12 class FL_EXPORT CInternalOptimizerMomentumGradientDescent : virtual public CInternalOptimizerStochasticGradientDescent<T>
13 {
14 public:
15 CInternalOptimizerMomentumGradientDescent();
16 CInternalOptimizerMomentumGradientDescent(const CInternalOptimizerMomentumGradientDescent<T>& ob);
17
18 virtual ~CInternalOptimizerMomentumGradientDescent();
19
20 virtual const CResult Assign(const CInternalOptimizerMomentumGradientDescent<T>& ob);
21 virtual const CResult Assign(const CInternalOptimizerMomentumGradientDescent<T>* pOb);
22
23 virtual CInternalOptimizerBase<T>* Clone() const override;
24
25 virtual const CResult Initialize() override;
26
27 virtual const CResult SetAlpha(T tAlpha);
28 virtual T GetAlpha() const;
29
30 virtual const CResult UpdateWeights() override;
31
32 virtual int64_t GetRequiredDedicatedMemory(int64_t i64BatchSize) const override;
33
34
35 DeclareGetClassType();
36
37 protected:
38
39 virtual void ClearVelocities();
40 virtual void CreateVelocities();
41
42 T m_tAlpha;
43 std::vector<CTensor<T>*>* m_pVctVelocities;
44
45 private:
46 template<typename T>
47 friend class COptimizer;
48 };
49
50
51 typedef CInternalOptimizerMomentumGradientDescent<float> CInternalOptimizerMomentumGradientDescentF;
52 typedef CInternalOptimizerMomentumGradientDescent<double> CInternalOptimizerMomentumGradientDescentD;
53
54 typedef CInternalOptimizerMomentumGradientDescent<float> CInternalOptimizerMGDF;
55 typedef CInternalOptimizerMomentumGradientDescent<double> CInternalOptimizerMGDD;
56
57 template <typename T>
58 using CInternalOptimizerMGD = CInternalOptimizerMomentumGradientDescent<T>;
59 }
60}
61
62#endif
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.