libeblearn
ebl::convolution_module< T, Tstate > Class Template Reference

#include <ebl_basic.h>

Inheritance diagram for ebl::convolution_module< T, Tstate >:
ebl::module_1_1< T, Tstate > ebl::module

List of all members.

Public Member Functions

 convolution_module (parameter< T, Tstate > *p, idxdim &ker, idxdim &stride, idx< intg > &table, const char *name="convolution", bool crop=true)
virtual ~convolution_module ()
 destructor
virtual void fprop (Tstate &in, Tstate &out)
 forward propagation from in to out
virtual void bprop (Tstate &in, Tstate &out)
 backward propagation from out to in
virtual void bbprop (Tstate &in, Tstate &out)
 second-derivative backward propagation from out to in
virtual void forget (forget_param_linear &fp)
 forgetting weights by replacing with random values
virtual int replicable_order ()
 order of operation
virtual bool resize_output (Tstate &in, Tstate &out)
virtual fidxdim fprop_size (fidxdim &i_size)
virtual fidxdim bprop_size (const fidxdim &o_size)
virtual convolution_module< T,
Tstate > * 
copy (parameter< T, Tstate > *p=NULL)
virtual void load_x (idx< T > &weights)
 Copy passed weights into x component of internal weights.
virtual std::string describe ()
 Returns a string describing this module and its parameters.
virtual void dump_fprop (Tstate &in, Tstate &out)

Public Attributes

intg tablemax
Tstate kernel
intg thickness
idxdim ker
idxdim stride
idx< intg > table
 table of connections btw input and output

Protected Attributes

bool warnings_shown
bool fulltable
 indicating whether it is a full-table or not
bool float_precision
 used for IPP and TH
bool double_precision
 used for TH
bool crop
idx< T > revkernel
 Crop input when size mismatch or not.
idx< T > outtmp
 a tmp buffer for IPP conv output
bool ipp_err_printed
 Print an error msg only once.
bool use_ipp
 IPP is useable or not.

Detailed Description

template<typename T, class Tstate = bbstate_idx<T>>
class ebl::convolution_module< T, Tstate >

This module applies 2D convolutions on dimensions 1 and 2 (0 contains different layers of information). This module has a replicable order of 3, if the input has a bigger order, use the replicable version of this module: convolution_module_replicable.


Constructor & Destructor Documentation

template<typename T , class Tstate >
ebl::convolution_module< T, Tstate >::convolution_module ( parameter< T, Tstate > *  p,
idxdim &  ker,
idxdim &  stride,
idx< intg > &  table,
const char *  name = "convolution",
bool  crop = true 
)

Constructor.

Parameters:
pis used to store all parametric variables in a single place. If p is null, a local buffer will be used.
kerThe convolution kernel sizes.
strideThe convolution strides.
tableis the convolution connection table.
cropIf true, crop input when it does not match with the kernel. This allows to feed any input size to this module.

Member Function Documentation

template<typename T , class Tstate >
fidxdim ebl::convolution_module< T, Tstate >::bprop_size ( const fidxdim &  o_size) [virtual]

Return dimensions compatible with this module given output dimensions. See module_1_1_gen's documentation for more details.

Reimplemented from ebl::module_1_1< T, Tstate >.

template<typename T , class Tstate >
convolution_module< T, Tstate > * ebl::convolution_module< T, Tstate >::copy ( parameter< T, Tstate > *  p = NULL) [virtual]

Returns a deep copy of this module.

Parameters:
pIf NULL, reuse current parameter space, otherwise allocate new weights on parameter 'p'.

Reimplemented from ebl::module_1_1< T, Tstate >.

template<typename T , class Tstate >
void ebl::convolution_module< T, Tstate >::dump_fprop ( Tstate &  in,
Tstate &  out 
) [virtual]

Calls fprop and then dumps internal buffers, inputs and outputs into files. This can be useful for debugging.

Reimplemented from ebl::module_1_1< T, Tstate >.

template<typename T , class Tstate >
fidxdim ebl::convolution_module< T, Tstate >::fprop_size ( fidxdim &  i_size) [virtual]

Return dimensions that are compatible with this module. See module_1_1_gen's documentation for more details.

Recompute the input size to be compliant with the output

Reimplemented from ebl::module_1_1< T, Tstate >.

template<typename T , class Tstate >
bool ebl::convolution_module< T, Tstate >::resize_output ( Tstate &  in,
Tstate &  out 
) [virtual]

resize the output based on input dimensions This returns true if output was resized/reallocated, false otherwise.


Member Data Documentation

template<typename T, class Tstate = bbstate_idx<T>>
idx<T> ebl::convolution_module< T, Tstate >::revkernel [protected]

Crop input when size mismatch or not.

a reversed kernel for IPP


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