Deep network
pooling.hpp
Go to the documentation of this file.
1#ifndef POOLING_LAYER_HPP
2#define POOLING_LAYER_HPP
3
4#include "layer.hpp"
5
6namespace Layer{
7
8 class Pooling:public Layer{
9 public:
10 size_t nf;
11 size_t ni;
12 size_t nj;
13 size_t p;
14 size_t q;
15 size_t mi;
16 size_t mj;
17 public:
18 Pooling(size_t nf,size_t ni,size_t nj,size_t p,size_t q);
20 Vector feed_forward(Vector x) override;
21 void init_nabla() override {};
22 Vector back_propagation(Vector e) override;
23 void update(Real) override {};
24 };
25
26 inline
27 Pooling::Pooling(size_t nf_,size_t ni_,size_t nj_,size_t p_,size_t q_):
28 Layer(nf_*ni_*nj_,nf_*((ni_+p_-1)/p_)*((nj_+q_-1)/q_)){
29 nf=nf_;
30 ni=ni_;
31 nj=nj_;
32 p=p_;
33 q=q_;
34 mi=(ni+p-1)/p;
35 mj=(nj+q-1)/p;
36 }
37
38}
39
40#endif
Vector x
Definition: layer.hpp:32
Definition: pooling.hpp:8
size_t mi
Definition: pooling.hpp:15
size_t nj
Definition: pooling.hpp:12
size_t nf
Definition: pooling.hpp:10
Vector back_propagation(Vector e) override
Definition: pooling.cpp:27
void init_nabla() override
Definition: pooling.hpp:21
size_t mj
Definition: pooling.hpp:16
Vector feed_forward(Vector x) override
Definition: pooling.cpp:6
size_t p
Definition: pooling.hpp:13
size_t ni
Definition: pooling.hpp:11
void update(Real) override
Definition: pooling.hpp:23
size_t q
Definition: pooling.hpp:14
~Pooling()
Definition: pooling.hpp:19
Pooling(size_t nf, size_t ni, size_t nj, size_t p, size_t q)
Definition: pooling.hpp:27
Definition: activation.hpp:7
double Real
Definition: vector.hpp:9
Real * Vector
Definition: vector.hpp:45