FLImaging 7.8.25.3
InternalOptimizerGradientDescent.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "InternalOptimizerBase.h"
6
7namespace FLImaging
8{
9 namespace AI
10 {
11 template <typename T>
12 class FL_EXPORT CInternalOptimizerGradientDescent : public CInternalOptimizerBase<T>
13 {
14 public:
15 CInternalOptimizerGradientDescent();
16 CInternalOptimizerGradientDescent(const CInternalOptimizerGradientDescent<T>& ob);
17
18 virtual ~CInternalOptimizerGradientDescent();
19
20 virtual const CResult Assign(const CInternalOptimizerGradientDescent<T>& ob);
21 virtual const CResult Assign(const CInternalOptimizerGradientDescent<T>* pOb);
22
23 virtual CInternalOptimizerBase<T>* Clone() const override;
24
25 virtual const CResult Initialize() override;
26
27 virtual const CResult Fit(T* pClippingThreshold = nullptr, int32_t* pI32IterationFeedbackFeedback = nullptr) override;
28
29 virtual const CResult SetWeightDecay(T tWeightDecay);
30 virtual T GetWeightDecay() const;
31
32 virtual const CResult SetMaximized(bool bMaximized);
33 virtual bool GetMaximized() const;
34
35 virtual const CResult EnableSkip1DWeightDecay(bool bSkip1DWeightDecay);
36 virtual bool IsSkip1DWeightDecayEnabled() const;
37
38 virtual const CResult UpdateWeights() override;
39
40
41 DeclareGetClassType();
42
43 protected:
44 T m_tWeightDecay;
45 bool m_bMaximized;
46 bool m_bSkip1DWeightDecay;
47 };
48
49 typedef CInternalOptimizerGradientDescent<float> CInternalOptimizerGradientDescentF;
50 typedef CInternalOptimizerGradientDescent<double> CInternalOptimizerGradientDescentD;
51
52 typedef CInternalOptimizerGradientDescent<float> CInternalOptimizerGDF;
53 typedef CInternalOptimizerGradientDescent<double> CInternalOptimizerGDD;
54
55 template <typename T>
56 using CInternalOptimizerGD = CInternalOptimizerGradientDescent<T>;
57 }
58}
59
60#endif
Definition AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:3531