mlpack  master
Public Member Functions | Private Member Functions | Private Attributes | List of all members
mlpack::ann::MaxPooling< InputDataType, OutputDataType > Class Template Reference

Implementation of the MaxPooling layer. More...

Public Member Functions

 MaxPooling ()
 Create the MaxPooling object. More...
 
 MaxPooling (const size_t kW, const size_t kH, const size_t dW=1, const size_t dH=1, const bool floor=true)
 Create the MaxPooling object using the specified number of units. More...
 
template<typename eT >
void Backward (const arma::Mat< eT > &&, arma::Mat< eT > &&gy, arma::Mat< eT > &&g)
 Ordinary feed backward pass of a neural network, using 3rd-order tensors as input, calculating the function f(x) by propagating x backwards through f. More...
 
OutputDataType const & Delta () const
 Get the delta. More...
 
OutputDataType & Delta ()
 Modify the delta. More...
 
bool Deterministic () const
 Get the value of the deterministic parameter. More...
 
bool & Deterministic ()
 Modify the value of the deterministic parameter. More...
 
template<typename eT >
void Forward (const arma::Mat< eT > &&input, arma::Mat< eT > &&output)
 Ordinary feed forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f. More...
 
size_t const & InputHeight () const
 Get the height. More...
 
size_t & InputHeight ()
 Modify the height. More...
 
InputDataType const & InputParameter () const
 Get the input parameter. More...
 
InputDataType & InputParameter ()
 Modify the input parameter. More...
 
size_t const & InputWidth () const
 Get the width. More...
 
size_t & InputWidth ()
 Modify the width. More...
 
size_t const & OutputHeight () const
 Get the height. More...
 
size_t & OutputHeight ()
 Modify the height. More...
 
OutputDataType const & OutputParameter () const
 Get the output parameter. More...
 
OutputDataType & OutputParameter ()
 Modify the output parameter. More...
 
size_t const & OutputWidth () const
 Get the width. More...
 
size_t & OutputWidth ()
 Modify the width. More...
 
template<typename Archive >
void Serialize (Archive &ar, const unsigned int)
 Serialize the layer. More...
 

Private Member Functions

template<typename eT >
void PoolingOperation (const arma::Mat< eT > &input, arma::Mat< eT > &output, arma::Mat< eT > &poolingIndices)
 Apply pooling to the input and store the results. More...
 
template<typename eT >
void Unpooling (const arma::Mat< eT > &error, arma::Mat< eT > &output, arma::Mat< eT > &poolingIndices)
 Apply unpooling to the input and store the results. More...
 

Private Attributes

OutputDataType delta
 Locally-stored delta object. More...
 
bool deterministic
 If true use maximum a posteriori during the forward pass. More...
 
size_t dH
 Locally-stored height of the stride operation. More...
 
size_t dW
 Locally-stored width of the stride operation. More...
 
bool floor
 Rounding operation used. More...
 
OutputDataType gradient
 Locally-stored gradient object. More...
 
arma::cube gTemp
 Locally-stored transformed output parameter. More...
 
arma::Mat< size_t > indices
 Locally-stored indices matrix parameter. More...
 
arma::Col< size_t > indicesCol
 Locally-stored indices column parameter. More...
 
size_t inputHeight
 Locally-stored input height. More...
 
InputDataType inputParameter
 Locally-stored input parameter object. More...
 
arma::cube inputTemp
 Locally-stored transformed input parameter. More...
 
size_t inputWidth
 Locally-stored input width. More...
 
size_t inSize
 Locally-stored number of input units. More...
 
size_t kH
 Locally-stored height of the pooling window. More...
 
size_t kW
 Locally-stored width of the pooling window. More...
 
size_t offset
 Locally-stored stored rounding offset. More...
 
size_t outputHeight
 Locally-stored output height. More...
 
OutputDataType outputParameter
 Locally-stored output parameter object. More...
 
arma::cube outputTemp
 Locally-stored output parameter. More...
 
size_t outputWidth
 Locally-stored output width. More...
 
size_t outSize
 Locally-stored number of output units. More...
 
MaxPoolingRule pooling
 Locally-stored pooling strategy. More...
 
std::vector< arma::cube > poolingIndices
 Locally-stored pooling indicies. More...
 
bool reset
 Locally-stored reset parameter used to initialize the module once. More...
 

Detailed Description

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
class mlpack::ann::MaxPooling< InputDataType, OutputDataType >

Implementation of the MaxPooling layer.

Template Parameters
InputDataTypeType of the input data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).
OutputDataTypeType of the output data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).

Definition at line 52 of file max_pooling.hpp.

Constructor & Destructor Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
mlpack::ann::MaxPooling< InputDataType, OutputDataType >::MaxPooling ( )

Create the MaxPooling object.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
mlpack::ann::MaxPooling< InputDataType, OutputDataType >::MaxPooling ( const size_t  kW,
const size_t  kH,
const size_t  dW = 1,
const size_t  dH = 1,
const bool  floor = true 
)

Create the MaxPooling object using the specified number of units.

Parameters
kWWidth of the pooling window.
kHHeight of the pooling window.
dWWidth of the stride operation.
dHWidth of the stride operation.
floorRounding operator (floor or ceil).

Member Function Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Backward ( const arma::Mat< eT > &&  ,
arma::Mat< eT > &&  gy,
arma::Mat< eT > &&  g 
)

Ordinary feed backward pass of a neural network, using 3rd-order tensors as input, calculating the function f(x) by propagating x backwards through f.

Using the results from the feed forward pass.

Parameters
inputThe propagated input activation.
gyThe backpropagated error.
gThe calculated gradient.
template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Delta ( ) const
inline

Get the delta.

Definition at line 108 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Delta ( )
inline

Modify the delta.

Definition at line 110 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Deterministic ( ) const
inline

Get the value of the deterministic parameter.

Definition at line 133 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Deterministic ( )
inline

Modify the value of the deterministic parameter.

Definition at line 135 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Forward ( const arma::Mat< eT > &&  input,
arma::Mat< eT > &&  output 
)

Ordinary feed forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f.

Parameters
inputInput data used for evaluating the specified function.
outputResulting output activation.
template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputHeight ( ) const
inline

Get the height.

Definition at line 118 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputHeight ( )
inline

Modify the height.

Definition at line 120 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputParameter ( ) const
inline

Get the input parameter.

Definition at line 98 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputParameter ( )
inline

Modify the input parameter.

Definition at line 100 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputWidth ( ) const
inline

Get the width.

Definition at line 113 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::InputWidth ( )
inline

Modify the width.

Definition at line 115 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputHeight ( ) const
inline

Get the height.

Definition at line 128 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputHeight ( )
inline

Modify the height.

Definition at line 130 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputParameter ( ) const
inline

Get the output parameter.

Definition at line 103 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputParameter ( )
inline

Modify the output parameter.

Definition at line 105 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t const& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputWidth ( ) const
inline

Get the width.

Definition at line 123 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t& mlpack::ann::MaxPooling< InputDataType, OutputDataType >::OutputWidth ( )
inline

Modify the width.

Definition at line 125 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::MaxPooling< InputDataType, OutputDataType >::PoolingOperation ( const arma::Mat< eT > &  input,
arma::Mat< eT > &  output,
arma::Mat< eT > &  poolingIndices 
)
inlineprivate

Apply pooling to the input and store the results.

Parameters
inputThe input to be apply the pooling rule.
outputThe pooled result.
poolingIndicesThe pooled indices.

Definition at line 153 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename Archive >
void mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Serialize ( Archive &  ar,
const unsigned  int 
)

Serialize the layer.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::MaxPooling< InputDataType, OutputDataType >::Unpooling ( const arma::Mat< eT > &  error,
arma::Mat< eT > &  output,
arma::Mat< eT > &  poolingIndices 
)
inlineprivate

Apply unpooling to the input and store the results.

Parameters
errorThe backward error.
outputThe pooled result.
poolingIndicesThe pooled indices.

Definition at line 187 of file max_pooling.hpp.

Member Data Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::MaxPooling< InputDataType, OutputDataType >::delta
private

Locally-stored delta object.

Definition at line 252 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::MaxPooling< InputDataType, OutputDataType >::deterministic
private

If true use maximum a posteriori during the forward pass.

Definition at line 237 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::dH
private

Locally-stored height of the stride operation.

Definition at line 213 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::dW
private

Locally-stored width of the stride operation.

Definition at line 210 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::MaxPooling< InputDataType, OutputDataType >::floor
private

Rounding operation used.

Definition at line 219 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::MaxPooling< InputDataType, OutputDataType >::gradient
private

Locally-stored gradient object.

Definition at line 255 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
arma::cube mlpack::ann::MaxPooling< InputDataType, OutputDataType >::gTemp
private

Locally-stored transformed output parameter.

Definition at line 246 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
arma::Mat<size_t> mlpack::ann::MaxPooling< InputDataType, OutputDataType >::indices
private

Locally-stored indices matrix parameter.

Definition at line 264 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
arma::Col<size_t> mlpack::ann::MaxPooling< InputDataType, OutputDataType >::indicesCol
private

Locally-stored indices column parameter.

Definition at line 267 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::inputHeight
private

Locally-stored input height.

Definition at line 228 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType mlpack::ann::MaxPooling< InputDataType, OutputDataType >::inputParameter
private

Locally-stored input parameter object.

Definition at line 258 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
arma::cube mlpack::ann::MaxPooling< InputDataType, OutputDataType >::inputTemp
private

Locally-stored transformed input parameter.

Definition at line 243 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::inputWidth
private

Locally-stored input width.

Definition at line 225 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::inSize
private

Locally-stored number of input units.

Definition at line 198 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::kH
private

Locally-stored height of the pooling window.

Definition at line 207 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::kW
private

Locally-stored width of the pooling window.

Definition at line 204 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::offset
private

Locally-stored stored rounding offset.

Definition at line 222 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::outputHeight
private

Locally-stored output height.

Definition at line 234 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::MaxPooling< InputDataType, OutputDataType >::outputParameter
private

Locally-stored output parameter object.

Definition at line 261 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
arma::cube mlpack::ann::MaxPooling< InputDataType, OutputDataType >::outputTemp
private

Locally-stored output parameter.

Definition at line 240 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::outputWidth
private

Locally-stored output width.

Definition at line 231 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
size_t mlpack::ann::MaxPooling< InputDataType, OutputDataType >::outSize
private

Locally-stored number of output units.

Definition at line 201 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
MaxPoolingRule mlpack::ann::MaxPooling< InputDataType, OutputDataType >::pooling
private

Locally-stored pooling strategy.

Definition at line 249 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
std::vector<arma::cube> mlpack::ann::MaxPooling< InputDataType, OutputDataType >::poolingIndices
private

Locally-stored pooling indicies.

Definition at line 270 of file max_pooling.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::MaxPooling< InputDataType, OutputDataType >::reset
private

Locally-stored reset parameter used to initialize the module once.

Definition at line 216 of file max_pooling.hpp.


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