template class xf::data_analytics::common::SGDFramework¶
#include "SGD.hpp"
Overview¶
Stochasitc Gradient Descent Framework.
Parameters:
| Gradient | gradient class which suite into this framework. | 
template <typename Gradient> class SGDFramework // direct descendants template < typename MType, int WAxi, int WData, int BurstLen, int D, int DDepth, RAMType RAMWeight, RAMType RAMIntercept, RAMType RAMAvgWeight, RAMType RAMAvgIntercept > class xf::data_analytics::regression::internal::LASSORegressionSGDTrainer template < typename MType, int WAxi, int WData, int BurstLen, int D, int DDepth, RAMType RAMWeight, RAMType RAMIntercept, RAMType RAMAvgWeight, RAMType RAMAvgIntercept > class xf::data_analytics::regression::internal::linearLeastSquareRegressionSGDTrainer template < typename MType, int WAxi, int WData, int BurstLen, int D, int DDepth, RAMType RAMWeight, RAMType RAMIntercept, RAMType RAMAvgWeight, RAMType RAMAvgIntercept > class xf::data_analytics::regression::internal::ridgeRegressionSGDTrainer // typedefs typedef Gradient::DataType MType // fields static const int WAxi static const int D static const int Depth ap_uint <32> offset ap_uint <32> rows ap_uint <32> cols ap_uint <32> bucketSize float fraction bool ifJump MType stepSize MType tolerance bool withIntercept ap_uint <32> maxIter Gradient gradProcessor
Methods¶
seedInitialization¶
void seedInitialization (ap_uint <32> seed)
Initialize RNG for sampling data.
Parameters:
| seed | Seed for RNG | 
setTrainingConfigs¶
void setTrainingConfigs ( MType inputStepSize, MType inputTolerance, bool inputWithIntercept, ap_uint <32> inputMaxIter )
Set configs for SGD iteration.
Parameters:
| inputStepSize | steps size of SGD iteration. | 
| inputTolerance | convergence tolerance of SGD. | 
| inputWithIntercept | if SGD includes intercept or not. | 
| inputMaxIter | max iteration number of SGD. | 
setTrainingDataParams¶
void setTrainingDataParams ( ap_uint <32> inputOffset, ap_uint <32> inputRows, ap_uint <32> inputCols, ap_uint <32> inputBucketSize, float inputFraction, bool inputIfJump )
Set configs for loading trainging data.
Parameters:
| inputOffset | offset of data in ddr. | 
| inputRows | number of rows of training data | 
| inputCols | number of features of training data | 
| inputBucketSize | bucketSize of jump sampling | 
| inputFraction | sample fraction | 
| inputIfJump | perform jump scaling or not. | 
initGradientParams¶
void initGradientParams (ap_uint <32> cols)
Set initial weight to zeros.
Parameters:
| cols | feature numbers | 
calcGradient¶
void calcGradient (ap_uint <WAxi>* ddr)
calculate gradient of current weight
Parameters:
| ddr | Traing Data | 
updateParams¶
bool updateParams (ap_uint <32> iterationIndex)
update weight and intercept based on gradient
Parameters:
| iterationIndex | iteraton index. |