12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef POOLING_LAYER_HPP
- #define POOLING_LAYER_HPP
- #include "layer.hpp"
- namespace Layer{
- class Pooling:public Layer{
- public:
- size_t nf;
- size_t ni;
- size_t nj;
- size_t p;
- size_t q;
- size_t mi;
- size_t mj;
- public:
- Pooling(size_t nf,size_t ni,size_t nj,size_t p,size_t q);
- ~Pooling(){};
- Vector feed_forward(Vector x) override;
- void init_nabla() override {};
- Vector back_propagation(Vector e) override;
- void update(Real) override {};
- };
- inline
- Pooling::Pooling(size_t nf_,size_t ni_,size_t nj_,size_t p_,size_t q_):
- Layer(nf_*ni_*nj_,nf_*((ni_+p_-1)/p_)*((nj_+q_-1)/q_)){
- nf=nf_;
- ni=ni_;
- nj=nj_;
- p=p_;
- q=q_;
- mi=(ni+p-1)/p;
- mj=(nj+q-1)/p;
- }
- }
- #endif
|