32 #ifndef __PDS_FCLAYER_HPP__
33 #define __PDS_FCLAYER_HPP__
37 #include <Pds/AbstractLayer>
114 FCLayer(
unsigned int Nin,
unsigned int Nout,
double(*func)(
double),
double(*dfunc)(
double));
138 FCLayer(
const Pds::Matrix &
W,
double(*func)(
double),
double(*dfunc)(
double));
169 bool Rand(
double minval,
double maxval);
179 bool SetActFunc(
double (*func)(
double),
double (*dfunc)(
double));
242 const Pds::Matrix &
GetW(
void)
const;
410 Pds::SampleBlock
Predict(
const Pds::SampleBlock &In)
const;
430 Pds::Vector
Predict(
const Pds::Vector &In)
const;
452 bool Predict(
const Pds::Vector &In, Pds::Vector &Out)
const;
479 bool Predict(
const Pds::Vector &In, Pds::Vector &Out, Pds::Vector &Z)
const;
506 const Pds::Vector &delta_p1,
507 double (*dfunc_m1)(
double),
508 const Pds::Vector &z,
537 bool WUpdate(
double alpham,
const Pds::Matrix &Q_1,
double lambda=0);
554 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::FCLayer . Esta clase genera un objeto con dos parametros Nlin y Ncol....
double(* ActFunc)(double)
double(* DActFunc)(double)
const std::string FCLayer
Tag de un objeto de tipo Pds::FCLayer.
FCLayer(const Pds::FCLayer &B)
Crea un objeto de tipo Pds::FCLayer copiando datos desde otro.
unsigned int Ninputs(void) const
Retorna el numero de elementos de entrada.
bool ExportXmlToStream(std::ofstream &myfile) const
Salva los datos de la capa en un std::ofstream en formato Xml.
Pds::Ra::FuncPointer GetActFunc(void) const
Retorna la funcion de activación.
bool ImportXmlFromString(const std::string &str)
Carga los datos de la capa.
Pds::Ra::FuncPointer GetDActFunc(void) const
Retorna la derivada de la funcion de activación.
bool Rand(double minval, double maxval)
Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval.
bool Predict(const Pds::Vector &In, Pds::Vector &Out) const
Evalua la capa de la CNN.
FCLayer(const Pds::Matrix &W, double(*func)(double), double(*dfunc)(double))
Crea un objeto de tipo Pds::FCLayer con W.Ncol() entradas y W.Nlin() salidas. Usa la función sigmoide...
Pds::Shape GetOutputShape(const Pds::Shape &In) const
Retorna el Shape de salida de la estructura.
void PrintStylized(std::string str="") const
Muestra en pantalla el contenido de Pds::FCLayer, en el formato (Nli,Ncol).
std::string ExportXmlToString(void) const
Salva los datos de la capa en un std::string en formato Xml.
unsigned int Noutputs(void) const
Retorna el numero de elementos de salida.
static bool DeltaBackPropagation(const Pds::Matrix &W, const Pds::Vector &delta_p1, double(*dfunc_m1)(double), const Pds::Vector &z, Pds::Vector &delta)
Calcula el valor de en la capa de la CNN a partir de y .
void MakeEmpty(void)
Limpia el objeto.
const Pds::Matrix & GetW(void) const
Retorna la matriz W.
FCLayer(void)
Crea un objeto de tipo Pds::FCLayer nulo con 0 entradas y 0 salidas. Sin función de activación....
FCLayer(unsigned int Nin, unsigned int Nout, double(*func)(double), double(*dfunc)(double))
Crea un objeto de tipo Pds::FCLayer con Nin entradas y Nout salidas. Los pesos so iniciados con una d...
Pds::Shape GetInputShape(void) const
Retorna el Shape de entrada de la estructura, si no importa el elemento es -1.
Pds::AbstractLayer * Clone(void)
Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actua...
bool WUpdate(double alpham, const Pds::Matrix &Q_1, double lambda=0)
Calcula y aplica la variación en la capa de la CNN a partir de .
FCLayer(unsigned int Nin, unsigned int Nout)
Crea un objeto de tipo Pds::FCLayer con Nin entradas y Nout salidas. Usa la función sigmoide....
bool SetActFunc(double(*func)(double), double(*dfunc)(double))
Retorna true si la funcion de activacion fue modificada o false si no.
Pds::TensorBlock PredictTensor(const Pds::TensorBlock &In) const
Evalua la capa de la CNN.
Pds::Vector Predict(const Pds::Vector &In) const
Evalua la capa de la CNN.
bool LoadFromStream(std::ifstream &ifs)
Carga los datos de la capa.
FCLayer(const Pds::Matrix &W)
Crea un objeto de tipo Pds::FCLayer con W.Ncol() entradas y W.Nlin() salidas. Usa la función sigmoide...
bool IsEmpty(void) const
Retorna true si la capa esta vacia o false si no.
bool SaveInStream(std::ofstream &myfile) const
Salva los datos de la capa.
std::string WToString(void) const
Retorna como un string la matriz W.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::FCLayer, elementos separados por tabulador.
Pds::SampleBlock Predict(const Pds::SampleBlock &In) const
Evalua la capa de la CNN.
bool Predict(const Pds::Vector &In, Pds::Vector &Out, Pds::Vector &Z) const
Evalua la capa de la CNN.
unsigned int SummaryLine(unsigned int width=12) const
Imprime en pantalla una linea con:
Nombre de espacion para PDS (Procesamiento Digital de Senales)