Home | Develop | Download | Contact
Namespaces | Estructuras de datos
Métodos Pds::Conv2DLayer

Metodos de la clase Pds::Conv2DLayer, una única capa de una Full Connected Neural Network. Más...

Namespaces

namespace  Pds
 Nombre de espacion para PDS (Procesamiento Digital de Senales)
 

Estructuras de datos

class  Pds::Conv2DLayer
 La clase tipo Pds::Conv2DLayer . Esta clase genera un objeto con parametros. Para usar incluir <Pds/Conv2DLayer>. Más...
 

Mostrando datos

Pds::AbstractLayerPds::MaxPoolingLayer::Clone (void)
 Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actual. Más...
 

Varios tipos de constructores

Crean una objeto Pds::Conv2DLayer

 Pds::Conv2DLayer::Conv2DLayer (void)
 Crea un objeto de tipo Pds::Conv2DLayer nulo con 0 entradas y 0 salidas. Sin función de activación. Matriz de pesos vazia. Más...
 
 Pds::Conv2DLayer::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 una distribución normal com desvio igual a 1. Más...
 
 Pds::Conv2DLayer::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. Los pesos son iniciados desde W. Más...
 
 Pds::Conv2DLayer::Conv2DLayer (const Pds::Conv2DLayer &B)
 Crea un objeto de tipo Pds::Conv2DLayer copiando datos desde otro. Más...
 
 Pds::Conv2DLayer::~Conv2DLayer ()
 

Inicializacion

bool Pds::Conv2DLayer::Rand (double minval, double maxval)
 Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval. Más...
 
bool Pds::Conv2DLayer::SetActFunc (double(*func)(double), double(*dfunc)(double))
 Retorna true si la funcion de activacion fue modificada o false si no. Más...
 

Get data

bool Pds::Conv2DLayer::IsEmpty (void) const
 Retorna true si la capa esta vacia o false si no. Más...
 
unsigned int Pds::Conv2DLayer::Noutputs (void) const
 Retorna el número de capas de salida. Más...
 
unsigned int Pds::Conv2DLayer::Ninputs (void) const
 Retorna el número de capas de entrada. Más...
 
Pds::Size Pds::Conv2DLayer::KernelSize (void) const
 Retorna el tamaño de cada kernel. Más...
 
Pds::Shape Pds::Conv2DLayer::GetInputShape (void) const
 Retorna el Shape de entrada de la estructura, si no importa el elemento es -1. Más...
 
Pds::Shape Pds::Conv2DLayer::GetOutputShape (const Pds::Shape &In) const
 Retorna el Shape de salida de la estructura. Más...
 

Export

bool Pds::Conv2DLayer::ExportXmlToStream (std::ofstream &myfile) const
 Salva los datos de la capa en un std::ofstream en formato Xml. Más...
 
std::string Pds::Conv2DLayer::ExportXmlToString (void) const
 Salva los datos de la capa en un std::string en formato Xml. Más...
 
bool Pds::Conv2DLayer::ImportXmlFromString (const std::string &str)
 Carga los datos de la capa. Más...
 
bool Pds::Conv2DLayer::SaveInStream (std::ofstream &myfile) const
 Salva los datos de la capa. Más...
 
bool Pds::Conv2DLayer::LoadFromStream (std::ifstream &ifs)
 Carga los datos de la capa. Más...
 

Evaluar

Pds::TensorBlock Pds::Conv2DLayer::PredictTensor (const Pds::TensorBlock &In) const
 Evalua la capa de la Conv2D. Más...
 
std::vector< Pds::Matrix > Pds::Conv2DLayer::Predict (const std::vector< Pds::Matrix > &Input) const
 Evalua la capa de la Conv2D. Más...
 

Mostrando datos

void Pds::Conv2DLayer::Print (std::string str="") const
 Muestra en pantalla el contenido de Pds::Conv2DLayer, elementos separados por tabulador. Más...
 
void Pds::Conv2DLayer::PrintStylized (std::string str="") const
 Muestra en pantalla el contenido de Pds::Conv2DLayer, en el formato (Nli,Ncol). Más...
 
void Pds::Conv2DLayer::MakeEmpty (void)
 Limpia el objeto. Más...
 
Pds::AbstractLayerPds::Conv2DLayer::Clone (void)
 Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actual. Más...
 

Descripción detallada

Metodos de la clase Pds::Conv2DLayer, una única capa de una Full Connected Neural Network.

#include <Pds/Conv2DLayer>

Informacion adicional puede ser encontrada en [1]

Documentación de las funciones

◆ Clone() [1/2]

Pds::AbstractLayer* Pds::MaxPoolingLayer::Clone ( void  )
inlinevirtual

Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actual.

Implementa Pds::AbstractLayer.

Ejemplos
example_customcnn_create.cpp.

Definición en la línea 272 del archivo MaxPoolingLayer.hpp.

273  {
274  return new Pds::MaxPoolingLayer(*this);
275  }
const std::string MaxPoolingLayer
Tag de un objeto de tipo Pds::MaxPoolingLayer.
Definition: NnDefines.hpp:160

Hace referencia a Pds::Nn::Tag::MaxPoolingLayer.

◆ Conv2DLayer() [1/4]

Pds::Conv2DLayer::Conv2DLayer ( void  )

Crea un objeto de tipo Pds::Conv2DLayer nulo con 0 entradas y 0 salidas. Sin función de activación. Matriz de pesos vazia.

◆ Conv2DLayer() [2/4]

Pds::Conv2DLayer::Conv2DLayer ( unsigned int  Nin,
unsigned int  Nout,
const Pds::Size &  Sz,
double(*)(double)  func = Pds::ReLU,
double(*)(double)  dfunc = 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 una distribución normal com desvio igual a 1.

Diagrama de la capa
Parámetros
[in]NinNúmero de entradas. Número $W[n].size()$ de capas de kernel.
[in]NoutNúmero de salidas. Número $W.size()$ de capas de kernel.
[in]SzTamaño $W[i][j].Size()$ del kernel.
[in]funcFunción de activación.
[in]dfuncDerivada de la función de activación.
[in]StridesPaso de la concolución.
[in]PaddingPadding de la concolución. Puede ser Pds::Ra::Valid, Pds::Ra::Full o Pds::Ra::Same.

◆ Conv2DLayer() [3/4]

Pds::Conv2DLayer::Conv2DLayer ( const std::vector< std::vector< Pds::Matrix >> &  W,
double(*)(double)  func = Pds::ReLU,
double(*)(double)  dfunc = 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. Los pesos son iniciados desde W.

Diagrama de la capa
Parámetros
[in]WVector de vectores de kernels $W[i][j],\quad i\in\{0,1,...,Nout-1\}, j\in\{0,1,...,Nin-1\}$.
[in]funcFunción de activación.
[in]dfuncDerivada de la función de activación.
[in]StridesPaso de la concolución.
[in]PaddingPadding de la concolución. Puede ser Pds::Ra::Valid, Pds::Ra::Full o Pds::Ra::Same.

◆ Conv2DLayer() [4/4]

Pds::Conv2DLayer::Conv2DLayer ( const Pds::Conv2DLayer B)

Crea un objeto de tipo Pds::Conv2DLayer copiando datos desde otro.

Parámetros
[in]BConv2DLayer a copiar.

◆ Rand()

bool Pds::Conv2DLayer::Rand ( double  minval,
double  maxval 
)

Carga los pesos con valores aleatorios uniformemente distribuidos desde minval hasta maxval.

Parámetros
[in]minvalMínimo valor.
[in]maxvalMáximo valor.

◆ SetActFunc()

bool Pds::Conv2DLayer::SetActFunc ( double(*)(double)  func,
double(*)(double)  dfunc 
)

Retorna true si la funcion de activacion fue modificada o false si no.

Parámetros
[in]funcFunción de activación.
[in]dfuncDerivada de la función de activación.
Devuelve
Retorna true si la funcion de activacion fue modificada o false si no.

◆ IsEmpty()

bool Pds::Conv2DLayer::IsEmpty ( void  ) const
virtual

Retorna true si la capa esta vacia o false si no.

Devuelve
Retorna true si la capa esta vacia o false si no.

Implementa Pds::AbstractLayer.

◆ Noutputs()

unsigned int Pds::Conv2DLayer::Noutputs ( void  ) const

Retorna el número de capas de salida.

Devuelve
Retorna el número de capas de salida.

◆ Ninputs()

unsigned int Pds::Conv2DLayer::Ninputs ( void  ) const

Retorna el número de capas de entrada.

Devuelve
Retorna el número de capas de entrada.

◆ KernelSize()

Pds::Size Pds::Conv2DLayer::KernelSize ( void  ) const

Retorna el tamaño de cada kernel.

Devuelve
Retorna el tamaño de cada kernel.

◆ GetInputShape()

Pds::Shape Pds::Conv2DLayer::GetInputShape ( void  ) const
virtual

Retorna el Shape de entrada de la estructura, si no importa el elemento es -1.

Devuelve
Retorna el Shape de entrada de la estructura

Implementa Pds::AbstractLayer.

◆ GetOutputShape()

Pds::Shape Pds::Conv2DLayer::GetOutputShape ( const Pds::Shape &  In) const
virtual

Retorna el Shape de salida de la estructura.

Devuelve
Retorna el Shape de salida de la estructura

Implementa Pds::AbstractLayer.

◆ ExportXmlToStream()

bool Pds::Conv2DLayer::ExportXmlToStream ( std::ofstream &  myfile) const
virtual

Salva los datos de la capa en un std::ofstream en formato Xml.

Por exemplo si guardamos un objeto de tipo Pds::Conv2DLayer en el std::ofstream se escribirá algo similar a:

<Conv2DLayer>
<Nin>2</Nin>
<Nout>2</Nout>
<ActFunc>5</ActFunc>
<DActFunc>6</DActFunc>
<StridesL>1</StridesL>
<StridesC>1</StridesC>
<Padding>2</Padding>
<TensorBlock>
<Nel>2</Nel>
<SampleBlock>
<Nel>2</Nel>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
0.53763086114909 0.36954202465847 0.56382463392773
</Array>
</Matrix>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
-0.87250749271152 -0.22063468437125 -1.3938059648353
</Array>
</Matrix>
</SampleBlock>
<SampleBlock>
<Nel>2</Nel>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
-0.7925277058445 2.1272209970701 -1.045855489402
</Array>
</Matrix>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
0.86048864346136 0.74207001785205 1.1751184865889
</Array>
</Matrix>
</SampleBlock>
</TensorBlock>
</Conv2DLayer>
Parámetros
[in]myfileStream de salida.
Devuelve
Retorna true si todo fue bien o false si no.

Implementa Pds::AbstractLayer.

◆ ExportXmlToString()

std::string Pds::Conv2DLayer::ExportXmlToString ( void  ) const
virtual

Salva los datos de la capa en un std::string en formato Xml.

Por exemplo si guardamos un objeto de tipo Pds::Conv2DLayer en el std::ofstream se escribirá algo similar a:

<Conv2DLayer>
<Nin>2</Nin>
<Nout>2</Nout>
<ActFunc>5</ActFunc>
<DActFunc>6</DActFunc>
<StridesL>1</StridesL>
<StridesC>1</StridesC>
<Padding>2</Padding>
<TensorBlock>
<Nel>2</Nel>
<SampleBlock>
<Nel>2</Nel>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
0.53763086114909 0.36954202465847 0.56382463392773
</Array>
</Matrix>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
-0.87250749271152 -0.22063468437125 -1.3938059648353
</Array>
</Matrix>
</SampleBlock>
<SampleBlock>
<Nel>2</Nel>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
-0.7925277058445 2.1272209970701 -1.045855489402
</Array>
</Matrix>
<Matrix>
<Nlin>1</Nlin>
<Ncol>3</Ncol>
<Array>
0.86048864346136 0.74207001785205 1.1751184865889
</Array>
</Matrix>
</SampleBlock>
</TensorBlock>
</Conv2DLayer>
Devuelve
Retorna un std::string en formato Xml con los datos de la capa.

Implementa Pds::AbstractLayer.

Ejemplos
example_conv2dlayer_export_xml.cpp.

◆ ImportXmlFromString()

bool Pds::Conv2DLayer::ImportXmlFromString ( const std::string &  str)
virtual

Carga los datos de la capa.

Atención
Devido a que la dirección de memoria de la función de activación cambia en cada ejecución de um nuevo programa, en el archivo se guardan los Id de las funciones en el vector Pds::Nn::FuncVector.
Atención
si se detecta un Id=0 o un Id fuera de rango en Pds::Nn::FuncVector se escribirán las funciones Pds::Nn::DefaultActFunc y Pds::Nn::DefaultDActFunc, respectivamente. Si se usan Pds::Nn::DefaultActFunc o Pds::Nn::DefaultDActFunc y estos son NULL entonces se retorna false.
Parámetros
[in]strString donde se leerá la información.
Devuelve
Retorna true si todo fue bien o false en caso de error. La memoria es liberada antes de la importación de modo que en caso de error la capa IsEmpty()==true.

Implementa Pds::AbstractLayer.

Ejemplos
example_conv2dlayer_export_xml.cpp.

◆ SaveInStream()

bool Pds::Conv2DLayer::SaveInStream ( std::ofstream &  myfile) const

Salva los datos de la capa.

Parámetros
[in]myfileStream onde se escribira la informacion.

◆ LoadFromStream()

bool Pds::Conv2DLayer::LoadFromStream ( std::ifstream &  ifs)

Carga los datos de la capa.

Atención
Devido a que la dirección de memoria de la función de activación cambia en cada ejecución de um nuevo programa, en el archivo se guardan los Id de las funciones en el vector Pds::Nn::FuncVector.
Atención
si se detecta un Id=0 o un Id fuera de rango en Pds::Nn::FuncVector se escribirán las funciones Pds::Nn::DefaultActFunc y Pds::Nn::DefaultDActFunc, respectivamente. Si se usan Pds::Nn::DefaultActFunc o Pds::Nn::DefaultDActFunc y estos son NULL entonces se retorna false.
Parámetros
[in]ifsStream donde se leerá la información.
Devuelve
Retorna true si todo fue bien o false en caso de error. La memoria es liberada antes de la importación de modo que en caso de error la capa IsEmpty()==true.
Ejemplos
example_conv2dlayer_export.cpp.

◆ PredictTensor()

Pds::TensorBlock Pds::Conv2DLayer::PredictTensor ( const Pds::TensorBlock &  In) const
virtual

Evalua la capa de la Conv2D.

\[ \mathbf{Output}[n]_l \leftarrow ActFunc \left( Pds::Conv2DCh(\mathbf{Input}_l,\mathbf{W}[n]) \right) \]

Diagrama de la capa
Parámetros
[in]InVector de matrices de entrada.
Devuelve
Retorna un vector $\mathbf{Output}$ de matrices de salida.

Implementa Pds::AbstractLayer.

◆ Predict()

std::vector<Pds::Matrix> Pds::Conv2DLayer::Predict ( const std::vector< Pds::Matrix > &  Input) const

Evalua la capa de la Conv2D.

\[ \mathbf{Output}[n] \leftarrow ActFunc \left( Pds::Conv2DCh(\mathbf{Input},\mathbf{W}[n]) \right) \]

Diagrama de la capa
Parámetros
[in]InputVector de matrices de entrada.
Devuelve
Retorna un vector $\mathbf{Output}$ de matrices de salida.
Ejemplos
example_conv2dlayer_predict.cpp y example_conv2dlayer_predict2.cpp.

◆ Print()

void Pds::Conv2DLayer::Print ( std::string  str = "") const

Muestra en pantalla el contenido de Pds::Conv2DLayer, elementos separados por tabulador.

Parámetros
[in]strTexto a mostrar antes de imprimir el contenido.

◆ PrintStylized()

void Pds::Conv2DLayer::PrintStylized ( std::string  str = "") const

Muestra en pantalla el contenido de Pds::Conv2DLayer, en el formato (Nli,Ncol).

Parámetros
[in]strTexto a mostrar antes de imprimir el contenido.
Ejemplos
example_conv2dlayer_export.cpp y example_conv2dlayer_export_xml.cpp.

◆ MakeEmpty()

void Pds::Conv2DLayer::MakeEmpty ( void  )
virtual

Limpia el objeto.

Implementa Pds::AbstractLayer.

◆ Clone() [2/2]

Pds::AbstractLayer* Pds::Conv2DLayer::Clone ( void  )
inlinevirtual

Retorna un puntero (generado con new) a una nuevo dirección de memoria con una copia del objeto actual.

Implementa Pds::AbstractLayer.

Definición en la línea 482 del archivo Conv2DLayer.hpp.

483  {
484  return new Pds::Conv2DLayer(*this);
485  }
const std::string Conv2DLayer
Tag de un objeto de tipo Pds::Conv2DLayer.
Definition: NnDefines.hpp:144

Hace referencia a Pds::Nn::Tag::Conv2DLayer.

◆ ~Conv2DLayer()

Pds::Conv2DLayer::~Conv2DLayer ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed