MachineIntelligenceCore:NeuralNets
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
mic::mlnn::fully_connected::BinaryCorrelator< eT > Class Template Reference

Class implementing a linear, fully connected layer. More...

#include <BinaryCorrelator.hpp>

Inheritance diagram for mic::mlnn::fully_connected::BinaryCorrelator< eT >:
Collaboration diagram for mic::mlnn::fully_connected::BinaryCorrelator< eT >:

Public Member Functions

 BinaryCorrelator (size_t inputs_, size_t outputs_, eT permanence_threshold_=0.5, eT proximal_threshold_=0.5, std::string name_="BinaryCorrelator")
 
 BinaryCorrelator (size_t input_height_, size_t input_width_, size_t input_depth_, size_t output_height_, size_t output_width_, size_t output_depth_, eT permanence_threshold_=0.5, eT proximal_threshold_=0.5, std::string name_="BinaryCorrelator")
 
virtual ~BinaryCorrelator ()
 
void forward (bool test_=false)
 
void backward ()
 
void update (eT alpha_, eT decay_=0.0f)
 
std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > & 
getActivations (size_t height_, size_t width_)
 
- Public Member Functions inherited from mic::mlnn::Layer< eT >
 Layer (size_t input_height_, size_t input_width_, size_t input_depth_, size_t output_height_, size_t output_width_, size_t output_depth_, LayerTypes layer_type_, std::string name_="layer")
 
virtual ~Layer ()
 
mic::types::MatrixPtr< eT > forward (mic::types::MatrixPtr< eT > x_, bool test=false)
 
mic::types::MatrixPtr< eT > backward (mic::types::MatrixPtr< eT > dy_)
 
virtual void resizeBatch (size_t batch_size_)
 
template<typename loss >
mic::types::MatrixPtr< eT > calculateNumericalGradient (mic::types::MatrixPtr< eT > x_, mic::types::MatrixPtr< eT > target_y_, mic::types::MatrixPtr< eT > param_, loss loss_, eT delta_)
 
virtual void resetGrads ()
 
size_t inputSize ()
 Returns size (length) of inputs. More...
 
size_t outputSize ()
 Returns size (length) of outputs. More...
 
size_t batchSize ()
 Returns size (length) of (mini)batch. More...
 
const std::string name () const
 Returns name of the layer. More...
 
mic::types::MatrixPtr< eT > getParam (std::string name_)
 
mic::types::MatrixPtr< eT > getState (std::string name_)
 
mic::types::MatrixPtr< eT > getGradient (std::string name_)
 
void setState (std::string name_, mic::types::MatrixPtr< eT > mat_ptr_)
 
template<typename omT >
void setOptimization ()
 
const std::string type () const
 
virtual std::string streamLayerParameters ()
 
mic::types::MatrixPtr< eT > lazyReturnSampleFromBatch (mic::types::MatrixPtr< eT > batch_ptr_, mic::types::MatrixArray< eT > &array_, std::string id_, size_t sample_number_, size_t sample_size_)
 
mic::types::MatrixPtr< eT > lazyReturnInputSample (mic::types::MatrixPtr< eT > batch_ptr_, size_t sample_number_)
 
mic::types::MatrixPtr< eT > lazyReturnOutputSample (mic::types::MatrixPtr< eT > batch_ptr_, size_t sample_number_)
 
mic::types::MatrixPtr< eT > lazyReturnChannelFromSample (mic::types::MatrixPtr< eT > sample_ptr_, mic::types::MatrixArray< eT > &array_, std::string id_, size_t sample_number_, size_t channel_number_, size_t height_, size_t width_)
 
mic::types::MatrixPtr< eT > lazyReturnInputChannel (mic::types::MatrixPtr< eT > sample_ptr_, size_t sample_number_, size_t channel_number_)
 
mic::types::MatrixPtr< eT > lazyReturnOutputChannel (mic::types::MatrixPtr< eT > sample_ptr_, size_t sample_number_, size_t channel_number_)
 
void lazyAllocateMatrixVector (std::vector< std::shared_ptr< mic::types::Matrix< eT > > > &vector_, size_t vector_size_, size_t matrix_height_, size_t matrix_width_)
 
virtual std::vector
< std::shared_ptr
< mic::types::Matrix< eT > > > & 
getInputActivations ()
 
virtual std::vector
< std::shared_ptr
< mic::types::Matrix< eT > > > & 
getInputGradientActivations ()
 
virtual std::vector
< std::shared_ptr
< mic::types::Matrix< eT > > > & 
getOutputActivations ()
 
virtual std::vector
< std::shared_ptr
< mic::types::Matrix< eT > > > & 
getOutputGradientActivations ()
 

Private Member Functions

 BinaryCorrelator ()
 

Private Attributes

std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > 
neuron_activations
 Vector containing activations of neurons. More...
 
eT permanence_threshold
 
eT proximal_threshold
 

Friends

template<typename tmp >
class mic::mlnn::MultiLayerNeuralNetwork
 

Additional Inherited Members

- Protected Member Functions inherited from mic::mlnn::Layer< eT >
 Layer ()
 
- Protected Attributes inherited from mic::mlnn::Layer< eT >
size_t input_height
 Height of the input (e.g. 28 for MNIST). More...
 
size_t input_width
 Width of the input (e.g. 28 for MNIST). More...
 
size_t input_depth
 Number of channels of the input (e.g. 3 for RGB images). More...
 
size_t output_height
 Number of receptive fields in a single channel - vertical direction. More...
 
size_t output_width
 Number of receptive fields in a single channel - horizontal direction. More...
 
size_t output_depth
 Number of filters = number of output channels. More...
 
size_t batch_size
 Size (length) of (mini)batch. More...
 
LayerTypes layer_type
 Type of the layer. More...
 
std::string layer_name
 Name (identifier of the type) of the layer. More...
 
mic::types::MatrixArray< eT > s
 States - contains input [x] and output [y] matrices. More...
 
mic::types::MatrixArray< eT > g
 Gradients - contains input [x] and output [y] matrices. More...
 
mic::types::MatrixArray< eT > p
 Parameters - parameters of the layer, to be used by the derived classes. More...
 
mic::types::MatrixArray< eT > m
 Memory - a list of temporal parameters, to be used by the derived classes. More...
 
mic::neural_nets::optimization::OptimizationArray
< eT > 
opt
 Array of optimization functions. More...
 
std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > 
x_activations
 Vector containing activations of input neurons - used in visualization. More...
 
std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > 
dx_activations
 Vector containing activations of gradients of inputs (dx) - used in visualization. More...
 
std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > 
y_activations
 Vector containing activations of output neurons - used in visualization. More...
 
std::vector< std::shared_ptr
< mic::types::Matrix< eT > > > 
dy_activations
 Vector containing activations of gradients of outputs (dy) - used in visualization. More...
 

Detailed Description

template<typename eT = float>
class mic::mlnn::fully_connected::BinaryCorrelator< eT >

Class implementing a linear, fully connected layer.

Author
tkornuta
Template Parameters
eTTemplate parameter denoting precision of variables (float for calculations/double for testing).

Definition at line 41 of file BinaryCorrelator.hpp.

Constructor & Destructor Documentation

template<typename eT = float>
mic::mlnn::fully_connected::BinaryCorrelator< eT >::BinaryCorrelator ( size_t  inputs_,
size_t  outputs_,
eT  permanence_threshold_ = 0.5,
eT  proximal_threshold_ = 0.5,
std::string  name_ = "BinaryCorrelator< eT >" 
)
inline

Creates a "binary correlator" (i.e fully connected) layer - reduced number of parameters.

Parameters
inputs_Length of the input vector.
outputs_Length of the output vector.
name_Name of the layer.

Definition at line 50 of file BinaryCorrelator.hpp.

template<typename eT = float>
mic::mlnn::fully_connected::BinaryCorrelator< eT >::BinaryCorrelator ( size_t  input_height_,
size_t  input_width_,
size_t  input_depth_,
size_t  output_height_,
size_t  output_width_,
size_t  output_depth_,
eT  permanence_threshold_ = 0.5,
eT  proximal_threshold_ = 0.5,
std::string  name_ = "BinaryCorrelator< eT >" 
)
inline

Creates a "binary correlator" (i.e fully connected) layer.

Parameters
input_height_Height of the input sample.
input_width_Width of the input sample.
input_depth_Depth of the input sample.
output_height_Width of the output sample.
output_width_Height of the output sample.
output_depth_Depth of the output sample.
name_Name of the layer.

Definition at line 66 of file BinaryCorrelator.hpp.

References mic::mlnn::Layer< eT >::m, mic::mlnn::Layer< eT >::p, and mic::mlnn::fully_connected::BinaryCorrelator< eT >::permanence_threshold.

template<typename eT = float>
virtual mic::mlnn::fully_connected::BinaryCorrelator< eT >::~BinaryCorrelator ( )
inlinevirtual

Virtual destructor - empty.

Definition at line 101 of file BinaryCorrelator.hpp.

template<typename eT = float>
mic::mlnn::fully_connected::BinaryCorrelator< eT >::BinaryCorrelator ( )
inlineprivate

Private constructor, used only during the serialization.

Definition at line 218 of file BinaryCorrelator.hpp.

Member Function Documentation

template<typename eT = float>
void mic::mlnn::fully_connected::BinaryCorrelator< eT >::backward ( )
inlinevirtual

Backward pass.

Implements mic::mlnn::Layer< eT >.

Definition at line 125 of file BinaryCorrelator.hpp.

template<typename eT = float>
void mic::mlnn::fully_connected::BinaryCorrelator< eT >::forward ( bool  test_ = false)
inlinevirtual

Forward pass.

Parameters
test_It ise set to true in test mode (network verification).

Implements mic::mlnn::Layer< eT >.

Definition at line 107 of file BinaryCorrelator.hpp.

References mic::mlnn::Layer< eT >::m, mic::mlnn::fully_connected::BinaryCorrelator< eT >::proximal_threshold, and mic::mlnn::Layer< eT >::s.

template<typename eT = float>
std::vector< std::shared_ptr <mic::types::Matrix<eT> > >& mic::mlnn::fully_connected::BinaryCorrelator< eT >::getActivations ( size_t  height_,
size_t  width_ 
)
inline

Returns activations of neurons of a given layer (simple visualization).

Definition at line 154 of file BinaryCorrelator.hpp.

References mic::mlnn::Layer< eT >::inputSize(), mic::mlnn::fully_connected::BinaryCorrelator< eT >::neuron_activations, mic::mlnn::Layer< eT >::outputSize(), and mic::mlnn::Layer< eT >::p.

Here is the call graph for this function:

template<typename eT = float>
void mic::mlnn::fully_connected::BinaryCorrelator< eT >::update ( eT  alpha_,
eT  decay_ = 0.0f 
)
inlinevirtual

Applies the gradient update, using the selected hebbian rule.

Parameters
alpha_Learning rate - passed to the optimization functions of all layers.
decay_Weight decay rate (determining that the "unused/unupdated" weights will decay to 0) (DEFAULT=0.0 - no decay).

Implements mic::mlnn::Layer< eT >.

Definition at line 134 of file BinaryCorrelator.hpp.

References mic::mlnn::Layer< eT >::m, mic::mlnn::Layer< eT >::opt, mic::mlnn::Layer< eT >::p, mic::mlnn::fully_connected::BinaryCorrelator< eT >::permanence_threshold, and mic::mlnn::Layer< eT >::s.

Friends And Related Function Documentation

template<typename eT = float>
template<typename tmp >
friend class mic::mlnn::MultiLayerNeuralNetwork
friend

Definition at line 203 of file BinaryCorrelator.hpp.

Member Data Documentation

template<typename eT = float>
std::vector< std::shared_ptr <mic::types::Matrix<eT> > > mic::mlnn::fully_connected::BinaryCorrelator< eT >::neuron_activations
private

Vector containing activations of neurons.

Definition at line 207 of file BinaryCorrelator.hpp.

Referenced by mic::mlnn::fully_connected::BinaryCorrelator< eT >::getActivations().

template<typename eT = float>
eT mic::mlnn::fully_connected::BinaryCorrelator< eT >::proximal_threshold
private

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