My Project
Public Member Functions | List of all members
cuda_mlp::CudaDenseLayer Class Reference

Fully connected layer with activation, using column-major matrices. More...

Public Member Functions

 CudaDenseLayer (int in, int out, ActivationType act)
 Construct a dense layer. More...
 
int in () const
 Input dimension. More...
 
int out () const
 Output dimension. More...
 
size_t params_size () const
 Total parameter count (weights + bias) More...
 
size_t weights_size () const
 Weights parameter count. More...
 
size_t bias_size () const
 Bias parameter count. More...
 
void bind (CudaScalar *params, CudaScalar *grads)
 Bind parameter and gradient buffers. More...
 
CudaScalar init_stddev () const
 Recommended stddev for weight initialization. More...
 
void forward (CublasHandle &handle, const CudaScalar *input, int batch, CudaScalar *output)
 Forward pass: Z = W*X + b, A = act(Z) More...
 
void backward (CublasHandle &handle, const CudaScalar *input, const CudaScalar *output, CudaScalar *next_grad, int batch, CudaScalar *prev_grad)
 Backward pass: compute dW, db, and optionally dX. More...
 
const CudaScalarparams_ptr () const
 Raw parameter pointer for this layer. More...
 
const CudaScalargrads_ptr () const
 Raw gradient pointer for this layer. More...
 

Detailed Description

Fully connected layer with activation, using column-major matrices.

Constructor & Destructor Documentation

◆ CudaDenseLayer()

cuda_mlp::CudaDenseLayer::CudaDenseLayer ( int  in,
int  out,
ActivationType  act 
)
inline

Construct a dense layer.

Parameters
inInput dimension
outOutput dimension
actActivation type

Member Function Documentation

◆ backward()

void cuda_mlp::CudaDenseLayer::backward ( CublasHandle handle,
const CudaScalar input,
const CudaScalar output,
CudaScalar next_grad,
int  batch,
CudaScalar prev_grad 
)
inline

Backward pass: compute dW, db, and optionally dX.

Parameters
handlecuBLAS handle
inputInput activations
outputOutput activations
next_gradGradient w.r.t. output (out x batch), updated in-place
batchBatch size
prev_gradOptional gradient w.r.t. input (in x batch)
Here is the call graph for this function:

◆ bias_size()

size_t cuda_mlp::CudaDenseLayer::bias_size ( ) const
inline

Bias parameter count.

◆ bind()

void cuda_mlp::CudaDenseLayer::bind ( CudaScalar params,
CudaScalar grads 
)
inline

Bind parameter and gradient buffers.

◆ forward()

void cuda_mlp::CudaDenseLayer::forward ( CublasHandle handle,
const CudaScalar input,
int  batch,
CudaScalar output 
)
inline

Forward pass: Z = W*X + b, A = act(Z)

Parameters
handlecuBLAS handle
inputInput matrix (in x batch)
batchBatch size
outputOutput matrix (out x batch)
Here is the call graph for this function:

◆ grads_ptr()

const CudaScalar* cuda_mlp::CudaDenseLayer::grads_ptr ( ) const
inline

Raw gradient pointer for this layer.

◆ in()

int cuda_mlp::CudaDenseLayer::in ( ) const
inline

Input dimension.

◆ init_stddev()

CudaScalar cuda_mlp::CudaDenseLayer::init_stddev ( ) const
inline

Recommended stddev for weight initialization.

Here is the call graph for this function:

◆ out()

int cuda_mlp::CudaDenseLayer::out ( ) const
inline

Output dimension.

◆ params_ptr()

const CudaScalar* cuda_mlp::CudaDenseLayer::params_ptr ( ) const
inline

Raw parameter pointer for this layer.

◆ params_size()

size_t cuda_mlp::CudaDenseLayer::params_size ( ) const
inline

Total parameter count (weights + bias)

◆ weights_size()

size_t cuda_mlp::CudaDenseLayer::weights_size ( ) const
inline

Weights parameter count.


The documentation for this class was generated from the following file: