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

Base class for all neural network modules (PyTorch-like nn.Module) More...

#include <layers.hpp>

Inheritance diagram for dl::layers::Module< T >:

Public Member Functions

virtual ~Module ()=default
 
virtual Variable< T > forward (const Variable< T > &input)=0
 Forward pass through the module.
 
virtual std::vector< Variable< T > * > parameters ()=0
 Get all parameters of this module.
 
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.
 

Protected Attributes

bool training_ = true
 

Detailed Description

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

Base class for all neural network modules (PyTorch-like nn.Module)

Definition at line 28 of file layers.hpp.

Constructor & Destructor Documentation

◆ ~Module()

template<typename T >
virtual dl::layers::Module< T >::~Module ( )
virtualdefault

Member Function Documentation

◆ eval()

template<typename T >
virtual void dl::layers::Module< T >::eval ( )
inlinevirtual

Set evaluation mode.

Definition at line 65 of file layers.hpp.

◆ forward()

template<typename T >
virtual Variable< T > dl::layers::Module< T >::forward ( const Variable< T > &  input)
pure virtual

Forward pass through the module.

Parameters
inputInput variable
Returns
Output variable

Implemented in dl::layers::Linear< T >, dl::layers::ReLU< T >, dl::layers::Sigmoid< T >, dl::layers::Tanh< T >, dl::layers::Dropout< T >, and dl::layers::Sequential< T >.

◆ is_training()

template<typename T >
bool dl::layers::Module< T >::is_training ( ) const
inline

Check if module is in training mode.

Definition at line 72 of file layers.hpp.

◆ parameters()

template<typename T >
virtual std::vector< Variable< T > * > dl::layers::Module< T >::parameters ( )
pure virtual

Get all parameters of this module.

Returns
Vector of parameter variables

Implemented in dl::layers::Linear< T >, dl::layers::ReLU< T >, dl::layers::Sigmoid< T >, dl::layers::Tanh< T >, dl::layers::Dropout< T >, and dl::layers::Sequential< T >.

◆ train()

template<typename T >
virtual void dl::layers::Module< T >::train ( bool  training = true)
inlinevirtual

Set training mode.

Parameters
trainingWhether in training mode

Reimplemented in dl::layers::Sequential< T >.

Definition at line 58 of file layers.hpp.

◆ zero_grad()

template<typename T >
virtual void dl::layers::Module< T >::zero_grad ( )
inlinevirtual

Zero gradients of all parameters.

Reimplemented in dl::layers::Sequential< T >.

Definition at line 48 of file layers.hpp.

Member Data Documentation

◆ training_

template<typename T >
bool dl::layers::Module< T >::training_ = true
protected

Definition at line 75 of file layers.hpp.


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