Proyecto Final - Turinmachin
Recreación del minijuego de matemáticas de Brain-Age usando redes neuronales
Loading...
Searching...
No Matches
utec::neural_network::ILayer< T > Struct Template Referenceabstract

Interfaz para una capa de la red neuronal. Permite que distintas capas se conecten entre sí con polimorfismo. More...

#include <interfaces.h>

Inheritance diagram for utec::neural_network::ILayer< T >:

Public Member Functions

virtual ~ILayer ()=default
 Destructor virtual.
virtual auto forward (const algebra::Tensor< T, 2 > &x) -> algebra::Tensor< T, 2 >=0
 Propagación hacia adelante de la capa.
virtual auto backward (const algebra::Tensor< T, 2 > &gradients) -> algebra::Tensor< T, 2 >=0
 Propagación hacia atrás de la capa.
virtual void update_params (IOptimizer< T > &optimizer)
 Actualiza los parámetros internos de la capa (si tiene).
virtual auto id () const -> LayerId=0
 Devuelve el tipo de la capa. Sirve para serialización o reconstrucción de la red.
virtual void save (std::ostream &out) const
 Guarda los parámetros internos de la capa en un flujo binario.

Detailed Description

template<typename T>
struct utec::neural_network::ILayer< T >

Interfaz para una capa de la red neuronal. Permite que distintas capas se conecten entre sí con polimorfismo.

Template Parameters
TTipo de dato usado en los tensores.

Constructor & Destructor Documentation

◆ ~ILayer()

template<typename T>
virtual utec::neural_network::ILayer< T >::~ILayer ( )
virtualdefault

Destructor virtual.

Member Function Documentation

◆ backward()

template<typename T>
virtual auto utec::neural_network::ILayer< T >::backward ( const algebra::Tensor< T, 2 > & gradients) -> algebra::Tensor< T, 2 >
pure virtual

Propagación hacia atrás de la capa.

Parameters
gradientsGradiente de la pérdida respecto a la salida de esta capa.
Returns
Gradiente de la pérdida respecto a la entrada de esta capa.

Implemented in utec::neural_network::Dense< T >, utec::neural_network::Kan< T >, utec::neural_network::ReLU< T >, utec::neural_network::Sigmoid< T >, and utec::neural_network::Softmax< T >.

◆ forward()

template<typename T>
virtual auto utec::neural_network::ILayer< T >::forward ( const algebra::Tensor< T, 2 > & x) -> algebra::Tensor< T, 2 >
pure virtual

Propagación hacia adelante de la capa.

Parameters
xTensor2D input de la capa.
Returns
Salida producida dependiendo de lo que haga la capa.

Implemented in utec::neural_network::Dense< T >, utec::neural_network::Kan< T >, utec::neural_network::ReLU< T >, utec::neural_network::Sigmoid< T >, and utec::neural_network::Softmax< T >.

◆ id()

template<typename T>
virtual auto utec::neural_network::ILayer< T >::id ( ) const -> LayerId
nodiscardpure virtual

Devuelve el tipo de la capa. Sirve para serialización o reconstrucción de la red.

Returns
Identificador único de tipo LayerID.

Implemented in Dense< T >, Kan< T >, Sigmoid< T >, utec::neural_network::Dense< T >, utec::neural_network::Kan< T >, utec::neural_network::ReLU< T >, utec::neural_network::Sigmoid< T >, and utec::neural_network::Softmax< T >.

◆ save()

template<typename T>
virtual void utec::neural_network::ILayer< T >::save ( std::ostream & out) const
inlinevirtual

Guarda los parámetros internos de la capa en un flujo binario.

Parameters
outFlujo de salida (por ejemplo, un archivo binario).
Note
Capas sin parámetros (ReLu, Sigmoid, Softmax) pueden dejar esta función vacía. Se usa principalmente para guardar el modelo entrenado.

Reimplemented in Dense< T >, Kan< T >, utec::neural_network::Dense< T >, and utec::neural_network::Kan< T >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_params()

template<typename T>
virtual void utec::neural_network::ILayer< T >::update_params ( IOptimizer< T > & optimizer)
inlinevirtual

Actualiza los parámetros internos de la capa (si tiene).

Parameters
optimizerInstancia del optimizador a usar.
Note
Si la capa no tiene parámetros entrenables (como ReLU o Softmax), no necesita hacer nada en esta función.

Reimplemented in utec::neural_network::Dense< T >, and utec::neural_network::Kan< T >.


The documentation for this struct was generated from the following file: