# Deep network: Layer::ConvolutionLayer Class Reference

Layer::ConvolutionLayer Class Reference

`#include <convolution.hpp>`

Inheritance diagram for Layer::ConvolutionLayer:
[legend]

## Public Member Functions

| ConvolutionLayer (size_t nf, size_t ni, size_t nj, size_t p, size_t q, size_t mf)
| ~ConvolutionLayer ()
void | init (Real mu, Real sigma)
Vector | feed_forward (Vector x) override
void | init_nabla () override
Vector | back_propagation (Vector e) override
void | update (Real eta) override
Public Member Functions inherited from Layer::Layer
| Layer (size_t n, size_t m)
| ~Layer ()
size_t | get_input_size () const
size_t | get_output_size () const
Vector | get_output () const
virtual Vector | feed_forward (Vector x)=0
virtual void | init_nabla ()=0
virtual Vector | back_propagation (Vector e)=0
virtual void | update (Real eta)=0

## Additional Inherited Members

Public Attributes inherited from Layer::Layer
string | name
size_t | n
size_t | m
Vector | x
Vector | y
Vector | d

## Constructor & Destructor Documentation

## ConvolutionLayer()

Layer::ConvolutionLayer::ConvolutionLayer | ( | size_t | nf,
|  | size_t | ni,
|  | size_t | nj,
|  | size_t | p,
|  | size_t | q,
|  | size_t | mf
| ) |  |

## ~ConvolutionLayer()

Layer::ConvolutionLayer::~ConvolutionLayer | ( |  | ) |

## Member Function Documentation

## back_propagation()

Vector Layer::ConvolutionLayer::back_propagation | ( | Vector | e | ) |

overridevirtual

Apply back propagation algorithm on the delta output vector d. Used the input vector stored in x_in_ref during feedforward. Return a reference to the computed (and stored) input delta vector. Nabla vectors must be computed here.

Implements Layer::Layer.

## feed_forward()

Vector Layer::ConvolutionLayer::feed_forward | ( | Vector | x | ) |

overridevirtual

Apply the layer to the input vector `x`. Vectors `x_in_ref` and `x_out` must be updated in consequence. Return a reference to x_out.

Implements Layer::Layer.

## init()

void Layer::ConvolutionLayer::init | ( | Real | mu,
|  | Real | sigma
| ) |  |

## init_nabla()

void Layer::ConvolutionLayer::init_nabla | ( |  | ) |

overridevirtual

Initialize nabla vectors which are used during gradient descent.

Implements Layer::Layer.

## update()

void Layer::ConvolutionLayer::update | ( | Real | eta | ) |

overridevirtual

Update layer parameters using gradient descent algorithm with learning rate eta.

Implements Layer::Layer.

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

- src/layers/convolution.hpp
- src/layers/convolution.cpp