32 #ifndef __PDS_CONV2DLAYER_HPP__
33 #define __PDS_CONV2DLAYER_HPP__
38 #include <Pds/AbstractLayer>
71 std::vector<std::vector<Pds::Matrix>>
W;
118 double(*func)(
double)=Pds::ReLU,
119 double(*dfunc)(
double)=Pds::DReLU,
120 const std::vector<unsigned int> &
Strides={1, 1},
121 Pds::Ra::Padding
Padding=Pds::Ra::Valid );
138 double(*func)(
double)=Pds::ReLU,
139 double(*dfunc)(
double)=Pds::DReLU,
140 const std::vector<unsigned int> &
Strides={1, 1},
141 Pds::Ra::Padding
Padding=Pds::Ra::Valid);
172 bool Rand(
double minval,
double maxval);
182 bool SetActFunc(
double (*func)(
double),
double (*dfunc)(
double));
444 std::vector<Pds::Matrix>
Predict(
const std::vector<Pds::Matrix> &Input)
const;
463 void Print(std::string str=
"")
const;
La clase tipo Pds::AbstractLayer . Esta clase genera un objeto con dos parametros Nlin y Ncol....
La clase tipo Pds::Conv2DLayer . Esta clase genera un objeto con parametros. Para usar incluir <Pds/C...
std::vector< unsigned int > Strides
double(* ActFunc)(double)
std::vector< std::vector< Pds::Matrix > > W
double(* DActFunc)(double)
void PrintStylized(std::string str="") const
Muestra en pantalla el contenido de Pds::Conv2DLayer, en el formato (Nli,Ncol).
Conv2DLayer(unsigned int Nin, unsigned int Nout, const Pds::Size &Sz, double(*func)(double)=Pds::ReLU, double(*dfunc)(double)=Pds::DReLU, const std::vector< unsigned int > &Strides={1, 1}, Pds::Ra::Padding Padding=Pds::Ra::Valid)
Crea un objeto de tipo Pds::Conv2DLayer con Nin entradas y Nout salidas. Los pesos so iniciados con u...
Conv2DLayer(void)
Crea un objeto de tipo Pds::Conv2DLayer nulo con 0 entradas y 0 salidas. Sin función de activación....
Pds::Size KernelSize(void) const
Retorna el tamaño de cada kernel.
Pds::TensorBlock PredictTensor(const Pds::TensorBlock &In) const
Evalua la capa de la Conv2D.
bool ExportXmlToStream(std::ofstream &myfile) const
Salva los datos de la capa en un std::ofstream en formato Xml.
bool SaveInStream(std::ofstream &myfile) const
Salva los datos de la capa.
unsigned int Noutputs(void) const
Retorna el número de capas de salida.
bool SetActFunc(double(*func)(double), double(*dfunc)(double))
Retorna true si la funcion de activacion fue modificada o false si no.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Conv2DLayer, elementos separados por tabulador.
Conv2DLayer(const Pds::Conv2DLayer &B)
Crea un objeto de tipo Pds::Conv2DLayer copiando datos desde otro.
unsigned int Ninputs(void) const
Retorna el número de capas de entrada.
bool Rand(double minval, double maxval)
Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval.
bool IsEmpty(void) const
Retorna true si la capa esta vacia o false si no.
std::vector< Pds::Matrix > Predict(const std::vector< Pds::Matrix > &Input) const
Evalua la capa de la Conv2D.
void MakeEmpty(void)
Limpia el objeto.
bool ImportXmlFromString(const std::string &str)
Carga los datos de la capa.
Pds::Shape GetOutputShape(const Pds::Shape &In) const
Retorna el Shape de salida de la estructura.
Pds::Shape GetInputShape(void) const
Retorna el Shape de entrada de la estructura, si no importa el elemento es -1.
std::string ExportXmlToString(void) const
Salva los datos de la capa en un std::string en formato Xml.
Conv2DLayer(const std::vector< std::vector< Pds::Matrix >> &W, double(*func)(double)=Pds::ReLU, double(*dfunc)(double)=Pds::DReLU, const std::vector< unsigned int > &Strides={1, 1}, Pds::Ra::Padding Padding=Pds::Ra::Valid)
Crea un objeto de tipo Pds::Conv2DLayer con W[0].size() entradas y W.size() salidas....
Pds::AbstractLayer * Clone(void)
Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actua...
bool LoadFromStream(std::ifstream &ifs)
Carga los datos de la capa.
const std::string Conv2DLayer
Tag de un objeto de tipo Pds::Conv2DLayer.
Nombre de espacion para PDS (Procesamiento Digital de Senales)