template class xf::data_analytics::regression::linearLeastSquareRegressionPredict

#include "linearRegression.hpp"

Overview

linear least square regression predict

Parameters:

MType datatype of regression, support double and float
D Number of features that processed each cycle
DDepth DDepth * D is max feature numbers supported.
RAMWeight Use which kind of RAM to store weight, could be LUTRAM, BRAM or URAM.
RAMIntercept Use which kind of RAM to store intercept, could be LUTRAM, BRAM or URAM.
template <
    typename MType,
    int D,
    int DDepth,
    RAMType RAMWeight,
    RAMType RAMIntercept
    >
class linearLeastSquareRegressionPredict

// fields

sl2 <MType, D, DDepth, 1, 1,&funcMul <MType>,&funcSum <MType>,&funcAssign <MType>, AdditionLatency <MType>::value, RAMWeight, RAMIntercept> dotMulProcessor

Methods

setWeight

void setWeight (
    MType inputW [D][DDepth],
    ap_uint <32> cols
    )

set up weight parameters for prediction

Parameters:

inputW weight
cols Effective weight numbers

setIntercept

void setIntercept (MType inputI)

set up intercept parameters for prediction

Parameters:

inputI intercept should be set to zero if don’t needed.

predict

void predict (
    hls::stream <MType> opStrm [D],
    hls::stream <bool>& eOpStrm,
    hls::stream <MType> retStrm [1],
    hls::stream <bool>& eRetStrm,
    ap_uint <32> cols
    )

predict based on input features and preset weight and intercept

Parameters:

opStrm feature input streams. To get a vector of L features, opStrm will be read (L + D - 1) / D times. Feature 0 to D-1 will be read from opStrm[0] to opStrm[D-1] at the first time. Then feature D to 2*D - 1. The last round will readin fake data if L is not divisiable by D. These data won’t be used, just to allign D streams.
eOpStrm End flag of opStrm.
retStrm Prediction result.
eRetStrm End flag of retStrm.
cols Effective feature numbers.