LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
keras::LayerMaxPooling Class Reference

#include "keras_model.h"

Inheritance diagram for keras::LayerMaxPooling:
keras::Layer

Public Member Functions

 LayerMaxPooling ()
 
void load_weights (std::ifstream &fin)
 
keras::DataChunkcompute_output (keras::DataChunk *)
 
virtual unsigned int get_input_rows () const
 
virtual unsigned int get_input_cols () const
 
virtual unsigned int get_output_units () const
 
std::string get_name ()
 

Public Attributes

int m_pool_x
 
int m_pool_y
 
std::string m_name
 

Detailed Description

Definition at line 148 of file keras_model.h.

Constructor & Destructor Documentation

keras::LayerMaxPooling::LayerMaxPooling ( )
inline

Definition at line 150 of file keras_model.h.

References fin.

150 : Layer("MaxPooling2D") {};
Layer(std::string name)
Definition: keras_model.h:124

Member Function Documentation

keras::DataChunk * keras::LayerMaxPooling::compute_output ( keras::DataChunk dc)
virtual

Implements keras::Layer.

Definition at line 145 of file keras_model.cc.

References d, keras::DataChunk::get_3d(), x, and y.

145  {
146  vector<vector<vector<float> > > im = dc->get_3d();
147  vector<vector<vector<float> > > y_ret;
148  for(unsigned int i = 0; i < im.size(); ++i) {
149  vector<vector<float> > tmp_y;
150  for(unsigned int j = 0; j < (unsigned int)(im[0].size()/m_pool_x); ++j) {
151  tmp_y.push_back(vector<float>((int)(im[0][0].size()/m_pool_y), 0.0));
152  }
153  y_ret.push_back(tmp_y);
154  }
155  for(unsigned int d = 0; d < y_ret.size(); ++d) {
156  for(unsigned int x = 0; x < y_ret[0].size(); ++x) {
157  unsigned int start_x = x*m_pool_x;
158  unsigned int end_x = start_x + m_pool_x;
159  for(unsigned int y = 0; y < y_ret[0][0].size(); ++y) {
160  unsigned int start_y = y*m_pool_y;
161  unsigned int end_y = start_y + m_pool_y;
162 
163  vector<float> values;
164  for(unsigned int i = start_x; i < end_x; ++i) {
165  for(unsigned int j = start_y; j < end_y; ++j) {
166  values.push_back(im[d][i][j]);
167  }
168  }
169  y_ret[d][x][y] = *max_element(values.begin(), values.end());
170  }
171  }
172  }
174  out->set_data(y_ret);
175  return out;
176 }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
virtual std::vector< std::vector< std::vector< float > > > const & get_3d() const
Definition: keras_model.h:46
Float_t d
Definition: plot.C:237
virtual unsigned int keras::LayerMaxPooling::get_input_cols ( ) const
inlinevirtual

Implements keras::Layer.

Definition at line 156 of file keras_model.h.

156 { return 0; } // same as for rows
virtual unsigned int keras::LayerMaxPooling::get_input_rows ( ) const
inlinevirtual

Implements keras::Layer.

Definition at line 155 of file keras_model.h.

155 { return 0; } // look for the value in the preceding layer
std::string keras::Layer::get_name ( )
inlineinherited

Definition at line 131 of file keras_model.h.

131 { return m_name; }
std::string m_name
Definition: keras_model.h:132
virtual unsigned int keras::LayerMaxPooling::get_output_units ( ) const
inlinevirtual

Implements keras::Layer.

Definition at line 157 of file keras_model.h.

157 { return 0; }
void keras::LayerMaxPooling::load_weights ( std::ifstream &  fin)
virtual

Implements keras::Layer.

Definition at line 89 of file keras_model.cc.

89  {
90  fin >> m_pool_x >> m_pool_y;
91  cout << "MaxPooling " << m_pool_x << "x" << m_pool_y << endl;
92 }
TString fin
Definition: Style.C:24

Member Data Documentation

std::string keras::Layer::m_name
inherited

Definition at line 132 of file keras_model.h.

int keras::LayerMaxPooling::m_pool_x

Definition at line 159 of file keras_model.h.

int keras::LayerMaxPooling::m_pool_y

Definition at line 160 of file keras_model.h.


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