Deep Learning Algorithm Implementations 1.0.0
C++ implementations of fundamental deep learning algorithms
Loading...
Searching...
No Matches
dl::layers::Linear< T > Class Template Reference

Linear (fully connected) layer: y = xW^T + b. More...

#include <layers.hpp>

Inheritance diagram for dl::layers::Linear< T >:
Collaboration diagram for dl::layers::Linear< T >:

Public Member Functions

 Linear (size_t in_features, size_t out_features, bool bias=true)
 Constructor.
 
Variable< T > forward (const Variable< T > &input) override
 Forward pass: y = xW^T + b.
 
std::vector< Variable< T > * > parameters () override
 Get parameters (weight and bias)
 
Variable< T > & weight ()
 
Variable< T > & bias ()
 
const Variable< T > & weight () const
 
const Variable< T > & bias () const
 
- Public Member Functions inherited from dl::layers::Module< T >
virtual ~Module ()=default
 
virtual void zero_grad ()
 Zero gradients of all parameters.
 
virtual void train (bool training=true)
 Set training mode.
 
virtual void eval ()
 Set evaluation mode.
 
bool is_training () const
 Check if module is in training mode.
 

Additional Inherited Members

- Protected Attributes inherited from dl::layers::Module< T >
bool training_ = true
 

Detailed Description

template<typename T>
class dl::layers::Linear< T >

Linear (fully connected) layer: y = xW^T + b.

Definition at line 82 of file layers.hpp.

Constructor & Destructor Documentation

◆ Linear()

template<typename T >
dl::layers::Linear< T >::Linear ( size_t  in_features,
size_t  out_features,
bool  bias = true 
)

Constructor.

Parameters
in_featuresNumber of input features
out_featuresNumber of output features
biasWhether to include bias term

Definition at line 13 of file layers.cpp.

Member Function Documentation

◆ bias() [1/2]

template<typename T >
Variable< T > & dl::layers::Linear< T >::bias ( )
inline

Definition at line 106 of file layers.hpp.

◆ bias() [2/2]

template<typename T >
const Variable< T > & dl::layers::Linear< T >::bias ( ) const
inline

Definition at line 108 of file layers.hpp.

◆ forward()

template<typename T >
Variable< T > dl::layers::Linear< T >::forward ( const Variable< T > &  input)
overridevirtual

Forward pass: y = xW^T + b.

Parameters
inputInput variable of shape (batch_size, in_features)
Returns
Output variable of shape (batch_size, out_features)

Implements dl::layers::Module< T >.

Definition at line 38 of file layers.cpp.

◆ parameters()

template<typename T >
std::vector< Variable< T > * > dl::layers::Linear< T >::parameters ( )
overridevirtual

Get parameters (weight and bias)

Implements dl::layers::Module< T >.

Definition at line 54 of file layers.cpp.

◆ weight() [1/2]

template<typename T >
Variable< T > & dl::layers::Linear< T >::weight ( )
inline

Definition at line 105 of file layers.hpp.

◆ weight() [2/2]

template<typename T >
const Variable< T > & dl::layers::Linear< T >::weight ( ) const
inline

Definition at line 107 of file layers.hpp.


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