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

Function node in the computational graph. More...

#include <autograd.hpp>

Inheritance diagram for utils::Function< T >:
Collaboration diagram for utils::Function< T >:

Public Member Functions

virtual ~Function ()=default
 
virtual Matrix< T > forward (const std::vector< Variable< T > > &inputs)=0
 Forward pass computation.
 
virtual std::vector< Matrix< T > > backward (const Matrix< T > &grad_output)=0
 Backward pass computation.
 
virtual void save_for_backward (const std::vector< Matrix< T > > &tensors)
 Set saved tensors for backward pass.
 

Protected Attributes

std::vector< Matrix< T > > saved_tensors_
 

Detailed Description

template<typename T>
class utils::Function< T >

Function node in the computational graph.

Definition at line 25 of file autograd.hpp.

Constructor & Destructor Documentation

◆ ~Function()

template<typename T >
virtual utils::Function< T >::~Function ( )
virtualdefault

Member Function Documentation

◆ backward()

template<typename T >
virtual std::vector< Matrix< T > > utils::Function< T >::backward ( const Matrix< T > &  grad_output)
pure virtual

Backward pass computation.

Parameters
grad_outputGradient from the output
Returns
Gradients with respect to inputs

Implemented in utils::AddFunction< T >, utils::SubFunction< T >, utils::MulFunction< T >, utils::DotFunction< T >, utils::TransposeFunction< T >, utils::SigmoidFunction< T >, and utils::SumFunction< T >.

◆ forward()

template<typename T >
virtual Matrix< T > utils::Function< T >::forward ( const std::vector< Variable< T > > &  inputs)
pure virtual

Forward pass computation.

Parameters
inputsInput variables
Returns
Output matrix

Implemented in utils::AddFunction< T >, utils::SubFunction< T >, utils::MulFunction< T >, utils::DotFunction< T >, utils::TransposeFunction< T >, utils::SigmoidFunction< T >, and utils::SumFunction< T >.

◆ save_for_backward()

template<typename T >
virtual void utils::Function< T >::save_for_backward ( const std::vector< Matrix< T > > &  tensors)
inlinevirtual

Set saved tensors for backward pass.

Definition at line 46 of file autograd.hpp.

Member Data Documentation

◆ saved_tensors_

template<typename T >
std::vector<Matrix<T> > utils::Function< T >::saved_tensors_
protected

Definition at line 51 of file autograd.hpp.


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