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

Clase que representa una red neuronal completamente conectada. More...

#include <neural_network.h>

Public Member Functions

 NeuralNetwork ()
 Constructor por defecto.
template<typename L, typename... Args>
void add_layer (Args &&... args)
 Agrega una nueva capa a la red.
template<template< typename... > class LossType, template< typename... > class OptimizerType = SGD>
void train (const algebra::Tensor< T, 2 > &x, const algebra::Tensor< T, 2 > &y, const size_t epochs, const size_t batch_size, T learning_rate, std::mt19937 &rng)
 Entrena la red neuronal usando descenso por lotes.
auto predict (const algebra::Tensor< T, 2 > &X) -> algebra::Tensor< T, 2 >
 Realiza una predicción sobre un conjunto de datos.
void save (std::ostream &out) const
 Guarda el modelo en un flujo de salida binario.

Static Public Member Functions

static auto load (std::istream &in) -> NeuralNetwork< T >
 Carga una red neuronal desde un flujo de entrada binario.

Detailed Description

template<typename T>
class utec::neural_network::NeuralNetwork< T >

Clase que representa una red neuronal completamente conectada.

Template Parameters
TTipo de dato para los pesos y cálculos (float, double, etc.).

Constructor & Destructor Documentation

◆ NeuralNetwork()

template<typename T>
utec::neural_network::NeuralNetwork< T >::NeuralNetwork ( )
inline

Constructor por defecto.

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

Member Function Documentation

◆ add_layer()

template<typename T>
template<typename L, typename... Args>
void utec::neural_network::NeuralNetwork< T >::add_layer ( Args &&... args)
inline

Agrega una nueva capa a la red.

Template Parameters
LTipo de capa (e.g., Dense, ReLU).
ArgsTipos de argumentos para el constructor de la capa.
Parameters
argsArgumentos para inicializar la capa. @complexity O(1).
Here is the caller graph for this function:

◆ load()

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

Carga una red neuronal desde un flujo de entrada binario.

Parameters
inFlujo de entrada desde el cual se carga la red.
Returns
Instancia de NeuralNetwork cargada con sus capas (y pesos si es que la capa lo permite). @complexity O(L*s), donde L es el número de capas y s el tamaño serializado de cada una.
Here is the call graph for this function:

◆ predict()

template<typename T>
auto utec::neural_network::NeuralNetwork< T >::predict ( const algebra::Tensor< T, 2 > & X) -> algebra::Tensor<T, 2>
inline

Realiza una predicción sobre un conjunto de datos.

Parameters
XDatos de entrada.
Returns
Tensor con la predicción de salida. @complexity O(L*f), donde L es el número de capas y f es el costo del forward.
Here is the caller graph for this function:

◆ save()

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

Guarda el modelo en un flujo de salida binario.

Parameters
outFlujo de salida donde se guarda la red. @complexity O(L*s), donde s es el tamaño serializado de cada capa.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ train()

template<typename T>
template<template< typename... > class LossType, template< typename... > class OptimizerType = SGD>
void utec::neural_network::NeuralNetwork< T >::train ( const algebra::Tensor< T, 2 > & x,
const algebra::Tensor< T, 2 > & y,
const size_t epochs,
const size_t batch_size,
T learning_rate,
std::mt19937 & rng )
inline

Entrena la red neuronal usando descenso por lotes.

Template Parameters
LossTypeTipo de función de pérdida (ej. MSELoss, BCELoss, ...).
OptimizerTypeTipo de optimizador (ej. SGD, Adam, ...). Por defecto es SGD.
Parameters
xDatos de entrada.
yEtiquetas esperadas.
epochsNúmero de épocas de entrenamiento.
batch_sizeTamaño del batch.
learning_rateTasa de aprendizaje.
rngGenerador aleatorio para mezclar los datos. @complexity O(e*(n/b)*L*(f+b+u))), donde:
  • e: número de épocas
  • n: número total de muestras
  • b: batch size
  • L: número de capas
  • f: costo forward de una capa
  • b: costo backward de una capa
  • u: costo de actualización de parámetros por capa
Here is the call graph for this function:
Here is the caller graph for this function:

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