LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
lbann::ClampOperator< DataT, D > Class Template Referencefinal

Constrain values to a range. More...

#include <clamp.hpp>

Inheritance diagram for lbann::ClampOperator< DataT, D >:
[legend]
Collaboration diagram for lbann::ClampOperator< DataT, D >:
[legend]

Public Member Functions

Lifecycle
 ClampOperator (double min, double max)
 
 ClampOperator (ClampOperator &&)=default
 
 ClampOperator (ClampOperator const &)=default
 
ClampOperatoroperator= (ClampOperator &&)=default
 
ClampOperatoroperator= (ClampOperator const &)=default
 
 ~ClampOperator ()=default
 
Queries
std::string get_type () const final
 
int get_backprop_requirements () const final
 
DataT get_min () const noexcept
 
DataT get_max () const noexcept
 
Serialization
template<typename ArchiveT >
void serialize (ArchiveT &ar)
 
- Public Member Functions inherited from lbann::Cloneable< ClampOperator< DataT, D >, ElementwiseOperator< DataT, DataT, D > >
std::unique_ptr< ClampOperator< DataT, D > > clone () const
 Return an exception-safe, memory-safe copy of this object. More...
 

Protected Member Functions

 ClampOperator ()
 

Private Types

using CompareType = DataT
 
Private Types
using BaseType = Cloneable< ClampOperator< DataT, D >, ElementwiseOperator< DataT, DataT, D > >
 
using LocalInputTensorType = typename BaseType::LocalInputTensorType
 
using LocalOutputTensorType = typename BaseType::LocalOutputTensorType
 
using ConstLocalInputTensorType = typename BaseType::ConstLocalInputTensorType
 
using ConstLocalOutputTensorType = typename BaseType::ConstLocalOutputTensorType
 

Private Member Functions

void fp_compute_local (std::vector< ConstLocalInputTensorType > input, std::vector< LocalOutputTensorType > output) const final
 Local forward compute function. More...
 
void bp_compute_local (std::vector< ConstLocalInputTensorType > input, std::vector< ConstLocalOutputTensorType > gradient_wrt_output, std::vector< LocalInputTensorType > gradient_wrt_input) const final
 Local backward compute function. More...
 
void set_proto_params (lbann_data::Operator &msg) const final
 
void do_fill_description (description &desc) const final
 

Private Attributes

DataT m_min
 
DataT m_max
 

Friends

class cereal::access
 

Detailed Description

template<typename DataT, El::Device D>
class lbann::ClampOperator< DataT, D >

Constrain values to a range.

\[ \text{clamp}(x; \text{min}, \text{max}) = \begin{cases} \text{min} & x \leq \text{min} \\ x & \text{min} < x < \text{max} \\ \text{max} & x \geq \text{max} \end{cases} \]

Definition at line 53 of file clamp.hpp.

Member Typedef Documentation

◆ BaseType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::BaseType = Cloneable<ClampOperator<DataT, D>, ElementwiseOperator<DataT, DataT, D> >
private

Definition at line 68 of file clamp.hpp.

◆ CompareType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::CompareType = DataT
private

Definition at line 61 of file clamp.hpp.

◆ ConstLocalInputTensorType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::ConstLocalInputTensorType = typename BaseType::ConstLocalInputTensorType
private

Definition at line 73 of file clamp.hpp.

◆ ConstLocalOutputTensorType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::ConstLocalOutputTensorType = typename BaseType::ConstLocalOutputTensorType
private

Definition at line 75 of file clamp.hpp.

◆ LocalInputTensorType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::LocalInputTensorType = typename BaseType::LocalInputTensorType
private

Definition at line 70 of file clamp.hpp.

◆ LocalOutputTensorType

template<typename DataT , El::Device D>
using lbann::ClampOperator< DataT, D >::LocalOutputTensorType = typename BaseType::LocalOutputTensorType
private

Definition at line 71 of file clamp.hpp.

Constructor & Destructor Documentation

◆ ClampOperator() [1/4]

template<typename DataT , El::Device D>
lbann::ClampOperator< DataT, D >::ClampOperator ( double  min,
double  max 
)
inline

Definition at line 83 of file clamp.hpp.

Here is the call graph for this function:

◆ ClampOperator() [2/4]

template<typename DataT , El::Device D>
lbann::ClampOperator< DataT, D >::ClampOperator ( ClampOperator< DataT, D > &&  )
default

◆ ClampOperator() [3/4]

template<typename DataT , El::Device D>
lbann::ClampOperator< DataT, D >::ClampOperator ( ClampOperator< DataT, D > const &  )
default

◆ ~ClampOperator()

template<typename DataT , El::Device D>
lbann::ClampOperator< DataT, D >::~ClampOperator ( )
default
Here is the caller graph for this function:

◆ ClampOperator() [4/4]

template<typename DataT , El::Device D>
lbann::ClampOperator< DataT, D >::ClampOperator ( )
inlineprotected

Definition at line 126 of file clamp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ bp_compute_local()

template<typename DataT , El::Device D>
void lbann::ClampOperator< DataT, D >::bp_compute_local ( std::vector< ConstLocalInputTensorType input,
std::vector< ConstLocalOutputTensorType gradient_wrt_output,
std::vector< LocalInputTensorType gradient_wrt_input 
) const
finalprivate

Local backward compute function.

Here is the caller graph for this function:

◆ do_fill_description()

template<typename DataT , El::Device D>
void lbann::ClampOperator< DataT, D >::do_fill_description ( description desc) const
inlinefinalprivate

Definition at line 147 of file clamp.hpp.

◆ fp_compute_local()

template<typename DataT , El::Device D>
void lbann::ClampOperator< DataT, D >::fp_compute_local ( std::vector< ConstLocalInputTensorType input,
std::vector< LocalOutputTensorType output 
) const
finalprivate

Local forward compute function.

Here is the caller graph for this function:

◆ get_backprop_requirements()

template<typename DataT , El::Device D>
int lbann::ClampOperator< DataT, D >::get_backprop_requirements ( ) const
inlinefinal

Definition at line 101 of file clamp.hpp.

◆ get_max()

template<typename DataT , El::Device D>
DataT lbann::ClampOperator< DataT, D >::get_max ( ) const
inlinenoexcept

Definition at line 106 of file clamp.hpp.

◆ get_min()

template<typename DataT , El::Device D>
DataT lbann::ClampOperator< DataT, D >::get_min ( ) const
inlinenoexcept

Definition at line 105 of file clamp.hpp.

◆ get_type()

template<typename DataT , El::Device D>
std::string lbann::ClampOperator< DataT, D >::get_type ( ) const
inlinefinal

Definition at line 100 of file clamp.hpp.

◆ operator=() [1/2]

template<typename DataT , El::Device D>
ClampOperator& lbann::ClampOperator< DataT, D >::operator= ( ClampOperator< DataT, D > &&  )
default
Here is the caller graph for this function:

◆ operator=() [2/2]

template<typename DataT , El::Device D>
ClampOperator& lbann::ClampOperator< DataT, D >::operator= ( ClampOperator< DataT, D > const &  )
default

◆ serialize()

template<typename DataT , El::Device D>
template<typename ArchiveT >
void lbann::ClampOperator< DataT, D >::serialize ( ArchiveT &  ar)
inline

Definition at line 113 of file clamp.hpp.

◆ set_proto_params()

template<typename DataT , El::Device D>
void lbann::ClampOperator< DataT, D >::set_proto_params ( lbann_data::Operator &  msg) const
inlinefinalprivate

Definition at line 139 of file clamp.hpp.

Friends And Related Function Documentation

◆ cereal::access

template<typename DataT , El::Device D>
friend class cereal::access
friend

Definition at line 125 of file clamp.hpp.

Member Data Documentation

◆ m_max

template<typename DataT , El::Device D>
DataT lbann::ClampOperator< DataT, D >::m_max
private

Maximum output.

Definition at line 158 of file clamp.hpp.

◆ m_min

template<typename DataT , El::Device D>
DataT lbann::ClampOperator< DataT, D >::m_min
private

Minimum output.

Definition at line 156 of file clamp.hpp.


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