Proyecto Final - Turinmachin
Recreación del minijuego de matemáticas de Brain-Age usando redes neuronales
Loading...
Searching...
No Matches
Dense< T > Class Template Referencefinal

#include <dense.h>

Inheritance diagram for Dense< T >:
Collaboration diagram for Dense< T >:

Public Member Functions

 Dense (const size_t in_f, const size_t out_f)
 Constructor que inicializa los tensores internos con ceros.
 Dense (const size_t in_f, const size_t out_f, auto init_w_fun, auto init_b_fun)
 Constructor que permite inicializar pesos y biases con funciones personalizadas.
auto forward (const algebra::Tensor< T, 2 > &x) -> algebra::Tensor< T, 2 > override
 Propagación hacia adelante de la capa. Calcula: output = x * weights + biases.
auto backward (const algebra::Tensor< T, 2 > &dZ) -> algebra::Tensor< T, 2 > override
 Propagación hacia atrás (backpropagation). Calcula los gradientes con respecto a pesos, biases y entrada.
void update_params (IOptimizer< T > &optimizer) override
 Actualiza los parámetros (pesos y biases) usando un optimizador.
auto id () const -> LayerId override
 Devuelve el tipo identificador de esta capa.
void save (std::ostream &out) const override
 Guarda la red neuronal en formato pp20.
Public Member Functions inherited from utec::neural_network::ILayer< T >
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).

Static Public Member Functions

static auto load (std::istream &in) -> Dense< T >
 Carga la red neuronal en formato pp20.

Constructor & Destructor Documentation

◆ Dense() [1/2]

template<typename T>
utec::neural_network::Dense< T >::Dense ( const size_t in_f,
const size_t out_f )
inline

Constructor que inicializa los tensores internos con ceros.

Parameters
in_fNúmero de neuronas de entrada.
out_fNúmero de neuronas de salida. @complexity O(1), inicialización directa.

◆ Dense() [2/2]

template<typename T>
utec::neural_network::Dense< T >::Dense ( const size_t in_f,
const size_t out_f,
auto init_w_fun,
auto init_b_fun )
inline

Constructor que permite inicializar pesos y biases con funciones personalizadas.

Parameters
in_fNúmero de neuronas de entrada.
out_fNúmero de neuronas de salida.
init_w_funFunción para inicializar los pesos.
init_b_funFunción para inicializar los biases. @complexity O(n*m), donde n = in_f, m = out_f (por recorrer los tensores).

Member Function Documentation

◆ backward()

template<typename T>
auto utec::neural_network::Dense< T >::backward ( const algebra::Tensor< T, 2 > & dZ) -> algebra::Tensor<T, 2>
inlineoverride

Propagación hacia atrás (backpropagation). Calcula los gradientes con respecto a pesos, biases y entrada.

Parameters
dZGradiente de la pérdida respecto a la salida de esta capa.
Returns
Gradiente de la pérdida respecto a la entrada de esta capa. @complexity O(b*n*m), por multiplicación activaciones^T * dZ → O(b*n*m) + suma fila a fila de dZ para biases → O(b*m) + multiplicación dZ * weights^t → O(b*m*n)

◆ forward()

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

Propagación hacia adelante de la capa. Calcula: output = x * weights + biases.

Parameters
xTensor de entrada.
Returns
Tensor de salida de la capa. @complexity O(b*n*m), donde: b es el número de muestras (filas de x), n es input_features, y m es output_features. Se debe a la multiplicación matricial (x * weights) y la suma con biases.

◆ id()

template<typename T>
auto utec::neural_network::Dense< T >::id ( ) const -> LayerId
inlinenodiscardoverridevirtual

Devuelve el tipo identificador de esta capa.

Returns
LayerID::Dense (o bien 2) @complexity O(1).

Implements utec::neural_network::ILayer< T >.

◆ load()

template<typename T>
auto utec::neural_network::Dense< T >::load ( std::istream & in) -> Dense<T>
inlinestatic

Carga la red neuronal en formato pp20.

Parameters
inFormato a cargar.

◆ save()

template<typename T>
void utec::neural_network::Dense< T >::save ( std::ostream & out) const
inlineoverridevirtual

Guarda la red neuronal en formato pp20.

Parameters
outputstream al que se le va escribir la informacion.

Reimplemented from utec::neural_network::ILayer< T >.

◆ update_params()

template<typename T>
void utec::neural_network::Dense< T >::update_params ( IOptimizer< T > & optimizer)
inlineoverride

Actualiza los parámetros (pesos y biases) usando un optimizador.

Parameters
optimizerReferencia al optimizador (SGD, Adam, etc.). @complexity O(n*m), donde n*m es el tamaño total de parámetros a actualizar. Depende de la implementación del optimizador.

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