DaNNet
Public Member Functions | Protected Attributes | List of all members
dnn::layer_cost Class Referenceabstract

Cost/output layer base class. More...

#include <dnn_layer_cost.h>

Inheritance diagram for dnn::layer_cost:
dnn::layer dnn::cost_CE dnn::cost_CE_sigmoid dnn::cost_CE_softmax dnn::cost_MSE dnn::cost_MSE_sigmoid

Public Member Functions

 layer_cost (void)
 Dense layer constructor. More...
 
virtual void init (void)
 Initialization of layer. More...
 
virtual void upd_buf_size (arma::uword nmb)
 Updates the buffer sizes. More...
 
virtual arma::Mat< DNN_Dtypeget_T_1 (void)
 Get target buffer. More...
 
virtual void set_data (const arma::Mat< DNN_Dtype > *data)
 Set new target/label data. More...
 
virtual void reset_batch_ctr (void)
 Reset batch counter. More...
 
virtual void prop (void)
 Forward propagation though layer. More...
 
virtual void prop_mb (void)
 Forward mini batch propagation though layer. More...
 
virtual void backprop (void)=0
 Back propagation. More...
 
virtual DNN_Dtype get_cost (void)=0
 
virtual DNN_Dtype get_acc (void)
 Get accuracy. More...
 
virtual void disp (void)
 Display info about layer. More...
 
- Public Member Functions inherited from dnn::layer
 layer (void)
 Layer constructor. More...
 
 ~layer ()
 
virtual void update (void)
 Parameter update. More...
 
virtual void enable_training (void)
 Enable training of layer. More...
 
virtual void disable_training (void)
 Disable training of layer. More...
 
virtual void enable_bias (void)
 Enable bias term in layer. More...
 
virtual void disable_bias (void)
 Disable bias term in layer. More...
 
virtual arma::Mat< DNN_Dtypeget_B (void)
 Get bias. More...
 
virtual arma::Cube< DNN_Dtypeget_W (void)
 Get weights. More...
 
virtual void set_B (arma::Mat< DNN_Dtype > &b)
 Set bias. More...
 
virtual void set_W (arma::Cube< DNN_Dtype > &w)
 Set weights. More...
 
virtual arma::uword get_nrof_params (void)
 Get number of trainable parameters. More...
 
virtual void set_phase (PHASE p)
 Set phase/state. More...
 
virtual void set_left (layer *lptr)
 Set pointer to left layer. More...
 
virtual void set_right (layer *rptr)
 Set pointer to right layer. More...
 
virtual void set_id (const std::string str)
 Set layer id string. More...
 
virtual std::string get_id (void)
 Get layer id string. More...
 
virtual void set_type (const std::string str)
 Set layer type string. More...
 
virtual std::string get_type (void)
 Get layer type string. More...
 
virtual void set_ix (const arma::uword n)
 Set layer index. More...
 
virtual arma::uword get_ix (void)
 Get layer index. More...
 
virtual void set_batch_size (const arma::uword n)
 Set mini batch size. More...
 
virtual arma::uword get_batch_size (void)
 Get mini batch size. More...
 
virtual void set_Y1 (arma::Mat< DNN_Dtype > &y)
 Set output buffer. More...
 
virtual void set_Y (arma::Mat< DNN_Dtype > &y)
 Set output buffer - mini batch. More...
 
virtual void set_Dleft (arma::Mat< DNN_Dtype > &d)
 Set error output buffer - mini batch. More...
 
virtual void set_rows_in (arma::uword r)
 Set input buffer row size. More...
 
virtual arma::uword get_nrof_rows (void)
 Get output buffer row size. More...
 
virtual void set_cols_in (arma::uword c)
 Set input buffer column size. More...
 
virtual arma::uword get_nrof_cols (void)
 Get output buffer column size. More...
 
virtual void set_channels_in (arma::uword l)
 Set input buffer channel/layer size. More...
 
virtual arma::uword get_nrof_channels (void)
 Get output buffer channel/layer size. More...
 
virtual void set_opt_alg (opt &alg_class)
 Set pointer to optimizer class. More...
 
virtual optget_opt_alg (void)
 Get pointer to optimizer class. More...
 
virtual arma::uword get_nrof_inputs (void)
 Get total number of layer inputs. More...
 
virtual arma::uword get_nrof_outputs (void)
 Get total number of layer outputs. More...
 
virtual arma::Mat< DNN_Dtypeget_Y1 (void)
 Get output buffer. More...
 
virtual arma::Mat< DNN_Dtype > * get_Y1_ptr (void)
 Get output buffer pointer. More...
 
virtual DNN_Dtypeget_Y1_memptr (void)
 Get output buffer memory pointer. More...
 
virtual arma::Mat< DNN_Dtypeget_Y (void)
 Get output buffer - mini batch. More...
 
virtual arma::Mat< DNN_Dtype > * get_Y_ptr (void)
 Get output buffer pointer - mini batch. More...
 
virtual DNN_Dtypeget_Y_memptr (void)
 Get output buffer memory pointer - mini batch. More...
 
virtual DNN_Dtypeget_Y_colptr (const arma::uword n)
 Get output buffer memory column pointer - mini batch. More...
 
virtual arma::Mat< DNN_Dtypeget_Dleft ()
 Get error buffer - mini batch. More...
 
virtual arma::Mat< DNN_Dtype > * get_Dleft_ptr (void)
 Get error buffer pointer - mini batch. More...
 
virtual DNN_Dtypeget_Dleft_memptr (void)
 Get error buffer memory pointer - mini batch. More...
 
virtual DNN_Dtypeget_Dleft_colptr (const arma::uword n)
 Get error buffer memory column pointer - mini batch. More...
 
virtual void save_layer_param (std::string name, PARAM_FORMAT f=PARAM_FORMAT::ASCII)
 Save layer weight and bias. More...
 
virtual void load_layer_param (std::string name, PARAM_FORMAT f=PARAM_FORMAT::AUTO)
 Load layer weight and bias. More...
 
template<typename T >
void init_weights (T &w, arma::uword fan_in, arma::uword fan_out, INIT_W_ALG alg, INIT_W_DIST dist)
 Initiate weights. More...
 
DNN_Dtype sigmoid (const DNN_Dtype x)
 Sigmoid function - scalar. More...
 
arma::Mat< DNN_Dtypesigmoid (const arma::Mat< DNN_Dtype > &x)
 Sigmoid function - matrix. More...
 
arma::Mat< DNN_Dtypesoftmax (const arma::Mat< DNN_Dtype > &x)
 Softmax function - matrix. More...
 

Protected Attributes

const arma::Mat< DNN_Dtype > * data_labels
 
arma::Mat< DNN_DtypeT
 
arma::Mat< DNN_DtypeT1
 
arma::uword data_len
 
arma::uword data_ix
 
- Protected Attributes inherited from dnn::layer
layerleft
 Pointer to previous layer. More...
 
layerright
 Pointer to next layer. More...
 
std::string id
 Layer id string. More...
 
std::string type
 Layer type string. More...
 
arma::uword layer_ix
 Layer index [0..]. More...
 
bool train_par
 Enable training. More...
 
bool add_bias
 Enable bias. More...
 
optopt_alg
 Pointer to optimizer. More...
 
PHASE phase
 Active state/phase. More...
 
arma::uword N_batch
 Mini batch size. More...
 
arma::uword N_rows_left
 Input rows. More...
 
arma::uword N_cols_left
 Input cols. More...
 
arma::uword N_channels_left
 Input channels, number of filters. More...
 
arma::uword N_rows_right
 Output rows. More...
 
arma::uword N_cols_right
 Output cols. More...
 
arma::uword N_channels_right
 Output channels, number of filters. More...
 
arma::uword N_left
 Total size left. More...
 
arma::uword N_right
 Total size right. More...
 
arma::Mat< DNN_DtypeY
 Output buffer mini batch [N_right,N_batch]. More...
 
arma::Mat< DNN_DtypeY1
 Output buffer [N_right,1]. More...
 
arma::Mat< DNN_DtypeDleft
 Error buffer [N_left,N_batch]. More...
 
arma::Cube< DNN_DtypeW
 Weights. More...
 
arma::Mat< DNN_DtypeB
 Bias. More...
 

Detailed Description

Cost/output layer base class.

Definition at line 26 of file dnn_layer_cost.h.

Constructor & Destructor Documentation

◆ layer_cost()

dnn::layer_cost::layer_cost ( void  )
inline

Dense layer constructor.

Definition at line 38 of file dnn_layer_cost.h.

Member Function Documentation

◆ backprop()

virtual void dnn::layer_cost::backprop ( void  )
pure virtual

Back propagation.

Reimplemented from dnn::layer.

Implemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::cost_CE, dnn::cost_MSE_sigmoid, and dnn::cost_MSE.

◆ disp()

virtual void dnn::layer_cost::disp ( void  )
inlinevirtual

Display info about layer.

Reimplemented from dnn::layer.

Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::cost_CE, dnn::cost_MSE_sigmoid, and dnn::cost_MSE.

Definition at line 170 of file dnn_layer_cost.h.

◆ get_acc()

virtual DNN_Dtype dnn::layer_cost::get_acc ( void  )
inlinevirtual

Get accuracy.

Returns
A quota of the accuracy [0..1]

Calculates the accuracy result of a mini batch

Definition at line 152 of file dnn_layer_cost.h.

◆ get_cost()

virtual DNN_Dtype dnn::layer_cost::get_cost ( void  )
pure virtual

◆ get_T_1()

virtual arma::Mat<DNN_Dtype> dnn::layer_cost::get_T_1 ( void  )
inlinevirtual

Get target buffer.

Definition at line 80 of file dnn_layer_cost.h.

◆ init()

virtual void dnn::layer_cost::init ( void  )
inlinevirtual

Initialization of layer.

Calculates the output and internal buffer sizes and initializes the parameters

Reimplemented from dnn::layer.

Definition at line 49 of file dnn_layer_cost.h.

◆ prop()

virtual void dnn::layer_cost::prop ( void  )
inlinevirtual

Forward propagation though layer.

Performas a forward pass through layer

Reimplemented from dnn::layer.

Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::cost_CE, and dnn::cost_MSE_sigmoid.

Definition at line 108 of file dnn_layer_cost.h.

◆ prop_mb()

virtual void dnn::layer_cost::prop_mb ( void  )
inlinevirtual

Forward mini batch propagation though layer.

Performas a forward pass through layer

Reimplemented from dnn::layer.

Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::cost_CE, and dnn::cost_MSE_sigmoid.

Definition at line 123 of file dnn_layer_cost.h.

◆ reset_batch_ctr()

virtual void dnn::layer_cost::reset_batch_ctr ( void  )
inlinevirtual

Reset batch counter.

Definition at line 98 of file dnn_layer_cost.h.

◆ set_data()

virtual void dnn::layer_cost::set_data ( const arma::Mat< DNN_Dtype > *  data)
inlinevirtual

Set new target/label data.

Definition at line 88 of file dnn_layer_cost.h.

◆ upd_buf_size()

virtual void dnn::layer_cost::upd_buf_size ( arma::uword  nmb)
inlinevirtual

Updates the buffer sizes.

Parameters
[in]nmbNew mini batch buffer size

Updates and clears the buffer sizes, called when size of mini batch is changed

Reimplemented from dnn::layer.

Definition at line 67 of file dnn_layer_cost.h.

Member Data Documentation

◆ data_ix

arma::uword dnn::layer_cost::data_ix
protected

Definition at line 33 of file dnn_layer_cost.h.

◆ data_labels

const arma::Mat<DNN_Dtype>* dnn::layer_cost::data_labels
protected

Definition at line 29 of file dnn_layer_cost.h.

◆ data_len

arma::uword dnn::layer_cost::data_len
protected

Definition at line 32 of file dnn_layer_cost.h.

◆ T

arma::Mat<DNN_Dtype> dnn::layer_cost::T
protected

Definition at line 30 of file dnn_layer_cost.h.

◆ T1

arma::Mat<DNN_Dtype> dnn::layer_cost::T1
protected

Definition at line 31 of file dnn_layer_cost.h.


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