FLImaging 6.5.16.1
InternalOptimizerAdagradGradientDescent.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 CInternalOptimizerAdagradGradientDescent : virtual public CInternalOptimizerStochasticGradientDescent<T>
13 {
14 public:
15 CInternalOptimizerAdagradGradientDescent();
16 CInternalOptimizerAdagradGradientDescent(const CInternalOptimizerAdagradGradientDescent<T>& ob);
17
18 virtual ~CInternalOptimizerAdagradGradientDescent();
19
20 virtual const CResult Assign(const CInternalOptimizerAdagradGradientDescent<T>& ob);
21 virtual const CResult Assign(const CInternalOptimizerAdagradGradientDescent<T>* pOb);
22
23 virtual CInternalOptimizerBase<T>* Clone() const override;
24
25 virtual const CResult Initialize() override;
26
27 virtual const CResult SetEpsilon(T tEpsilon);
28 virtual T GetEpsilon() 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 ClearCumulativeGradients();
40 virtual void CreateCumulativeGradients();
41
42 std::vector<CTensor<T>*>* m_pVctCumulativeGradients;
43 T m_tEpsilon;
44
45 private:
46 template<typename T>
47 friend class COptimizer;
48 };
49
50
51 typedef CInternalOptimizerAdagradGradientDescent<float> CInternalOptimizerAdagradGradientDescentF;
52 typedef CInternalOptimizerAdagradGradientDescent<double> CInternalOptimizerAdagradGradientDescentD;
53
54 typedef CInternalOptimizerAdagradGradientDescent<float> CInternalOptimizerAdagradGDF;
55 typedef CInternalOptimizerAdagradGradientDescent<double> CInternalOptimizerAdagradGDD;
56
57 template <typename T>
58 using CInternalOptimizerAdagradGD = CInternalOptimizerAdagradGradientDescent<T>;
59 }
60}
61
62#endif
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.