Home | Develop | Download | Contact
AbstractLayer.hpp
1 /*
2  * AbstractLayer.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
32 #ifndef __PDS_ABSTRACTLAYER_HPP__
33 #define __PDS_ABSTRACTLAYER_HPP__
34 
35 #include <string>
36 #include <Pds/Ra>
37 
47 namespace Pds{
48 
49 
59 {
60 
61 private:
62  // Número de entradas
63  std::string Name;
64 
65 public:
66 
77  {
78  this->Name="";
79  }
80 
85  AbstractLayer(const std::string &Name)
86  {
87  this->Name=Name;
88  }
89 
90  virtual ~AbstractLayer()
91  {
92  this->Name.clear();
93  }
98 public:
110  virtual bool IsEmpty(void) const=0;
111 
117  virtual Pds::Shape GetInputShape(void) const=0;
118 
124  virtual Pds::Shape GetOutputShape(const Pds::Shape &In) const=0;
125 
131  std::string GetName(void) const
132  {
133  return this->Name;
134  }
135 
141  void SetName(const std::string &Name)
142  {
143  this->Name=Name;
144  }
150 public:
161  virtual bool ExportXmlToStream(std::ofstream &myfile) const=0;
162 
168  virtual std::string ExportXmlToString(void) const=0;
169 
182  virtual bool ImportXmlFromString( const std::string &str)=0;
183 
190 public:
203  virtual Pds::TensorBlock PredictTensor(const Pds::TensorBlock &In) const=0;
210 public:
221  virtual void MakeEmpty(void)=0;
222 
234  virtual Pds::AbstractLayer* Clone(void)=0;
235 
239 }; // Class AbstractLayer
240 
241 } // namespace Pds
242 
243 
248 #endif
249 
La clase tipo Pds::AbstractLayer . Esta clase genera un objeto con dos parametros Nlin y Ncol....
virtual ~AbstractLayer()
virtual bool ImportXmlFromString(const std::string &str)=0
Carga los datos de la capa.
virtual bool ExportXmlToStream(std::ofstream &myfile) const =0
Salva los datos de la capa en un std::ofstream en formato Xml.
virtual Pds::TensorBlock PredictTensor(const Pds::TensorBlock &In) const =0
Predice datos.
virtual Pds::Shape GetOutputShape(const Pds::Shape &In) const =0
Retorna el Shape de salida de la estructura.
virtual std::string ExportXmlToString(void) const =0
Salva los datos de la capa en un std::string en formato Xml.
std::string GetName(void) const
Retorna el nombre de la capa.
void SetName(const std::string &Name)
Escribe el nombre de la capa.
virtual Pds::AbstractLayer * Clone(void)=0
Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actua...
virtual bool IsEmpty(void) const =0
Retorna true si la capa esta vacia o false si no.
virtual Pds::Shape GetInputShape(void) const =0
Retorna el Shape de entrada de la estructura, si no importa el elemento es -1.
AbstractLayer(void)
Crea un objeto de tipo Pds::AbstractLayer nulo.
AbstractLayer(const std::string &Name)
Crea un objeto de tipo Pds::AbstractLayer con nombre Name.
virtual void MakeEmpty(void)=0
Libera memoria y limpia la capa.
Nombre de espacion para PDS (Procesamiento Digital de Senales)
Definition: FCLayer.hpp:48

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed