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

Class implementing a linear, fully connected layer with sparsity regulation. More...

#include <Linear.hpp>

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

Public Member Functions

 SparseLinear (size_t inputs_, size_t outputs_, std::string name_="SparseLinear")
 
virtual ~SparseLinear ()
 
void backward ()
 
void update (eT alpha_, eT decay_=0.0f)
 
- Public Member Functions inherited from mic::mlnn::fully_connected::Linear< eT >
 Linear (size_t inputs_, size_t outputs_, std::string name_="Linear")
 
 Linear (size_t input_height_, size_t input_width_, size_t input_depth_, size_t output_height_, size_t output_width_, size_t output_depth_, std::string name_="Linear")
 
virtual ~Linear ()
 
void forward (bool test_=false)
 
void resetGrads ()
 
std::vector
< mic::types::MatrixPtr< eT > > & 
getWeightActivations ()
 
std::vector
< mic::types::MatrixPtr< eT > > & 
getWeightGradientActivations ()
 
std::vector
< mic::types::MatrixPtr< eT > > & 
getInverseWeightActivations ()
 
std::vector
< mic::types::MatrixPtr< eT > > & 
getInverseOutputActivations ()
 
eT calculateMeanReconstructionError ()
 
- 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_)
 
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

 SparseLinear ()
 

Private Attributes

eT desired_ro
 Desired sparsity of the layer. More...
 
eT beta
 Controls the weight of the sparsity penalty term. More...
 

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>
class mic::mlnn::fully_connected::SparseLinear< eT >

Class implementing a linear, fully connected layer with sparsity regulation.

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

Definition at line 34 of file Linear.hpp.

Constructor & Destructor Documentation

template<typename eT >
mic::mlnn::fully_connected::SparseLinear< eT >::SparseLinear ( size_t  inputs_,
size_t  outputs_,
std::string  name_ = "SparseLinear< eT >" 
)
inline

Default constructor used for creation of the layer.

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

Definition at line 49 of file SparseLinear.hpp.

References mic::mlnn::fully_connected::SparseLinear< eT >::beta, mic::mlnn::fully_connected::SparseLinear< eT >::desired_ro, mic::mlnn::Layer< eT >::m, mic::mlnn::Layer< eT >::outputSize(), and mic::mlnn::SparseLinear.

Here is the call graph for this function:

template<typename eT >
virtual mic::mlnn::fully_connected::SparseLinear< eT >::~SparseLinear ( )
inlinevirtual

Virtual constructor.

Definition at line 70 of file SparseLinear.hpp.

template<typename eT >
mic::mlnn::fully_connected::SparseLinear< eT >::SparseLinear ( )
inlineprivate

Private constructor, used only during the deserialization.

Definition at line 135 of file SparseLinear.hpp.

Member Function Documentation

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

Applies the gradient update, using the selected optimization method.

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).

Reimplemented from mic::mlnn::fully_connected::Linear< eT >.

Definition at line 98 of file SparseLinear.hpp.

References mic::mlnn::Layer< eT >::g, mic::mlnn::Layer< eT >::m, mic::mlnn::Layer< eT >::opt, and mic::mlnn::Layer< eT >::p.

Friends And Related Function Documentation

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

Definition at line 130 of file SparseLinear.hpp.

Member Data Documentation

template<typename eT >
eT mic::mlnn::fully_connected::SparseLinear< eT >::beta
private

Controls the weight of the sparsity penalty term.

Definition at line 141 of file SparseLinear.hpp.

Referenced by mic::mlnn::fully_connected::SparseLinear< eT >::backward(), and mic::mlnn::fully_connected::SparseLinear< eT >::SparseLinear().

template<typename eT >
eT mic::mlnn::fully_connected::SparseLinear< eT >::desired_ro
private

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