#include <dense.h>
|
| 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.
|
virtual | ~ILayer ()=default |
| Destructor virtual.
|
|
static auto | load (std::istream &in) -> Dense< T > |
| Carga la red neuronal en formato pp20.
|
◆ Dense() [1/2]
Constructor que inicializa los tensores internos con ceros.
- Parameters
-
in_f | Número de neuronas de entrada. |
out_f | Número de neuronas de salida. @complexity O(1), inicialización directa. |
◆ Dense() [2/2]
Constructor que permite inicializar pesos y biases con funciones personalizadas.
- Parameters
-
in_f | Número de neuronas de entrada. |
out_f | Número de neuronas de salida. |
init_w_fun | Función para inicializar los pesos. |
init_b_fun | Función para inicializar los biases. @complexity O(n*m), donde n = in_f, m = out_f (por recorrer los tensores). |
◆ backward()
Propagación hacia atrás (backpropagation). Calcula los gradientes con respecto a pesos, biases y entrada.
- Parameters
-
dZ | Gradiente 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)
Implements utec::neural_network::ILayer< T >.
◆ forward()
Propagación hacia adelante de la capa. Calcula: output = x * weights + biases.
- Parameters
-
- 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.
Implements utec::neural_network::ILayer< T >.
◆ id()
template<typename T>
|
inlinenodiscardoverridevirtual |
◆ load()
Carga la red neuronal en formato pp20.
- Parameters
-
◆ save()
◆ update_params()
Actualiza los parámetros (pesos y biases) usando un optimizador.
- Parameters
-
optimizer | Referencia 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. |
Reimplemented from utec::neural_network::ILayer< T >.
The documentation for this class was generated from the following file: