Modelo (Orquestrador)#

class Model#

Orquestrador principal da Rede Neural.

  • A classe Model gerencia o grafo sequencial de camadas e orquestra o fluxo de dados (Forward Pass), a retropropagação do erro (Backward Pass) e a otimização de parâmetros. Ela transforma componentes isolados em um sistema de aprendizado de máquina unificado.

Public Functions

Model() = default#

Construtor padrão da classe Model.

~Model() = default#

Destrutor padrão.

Note

Como os ponteiros das camadas são fornecidos via AddLayer, a responsabilidade de liberar a memória das camadas recai sobre quem as instanciou.

inline void AddLayer(Layer *layer)#

Adiciona uma nova camada sequencial ao modelo.

Parameters:

layer – Ponteiro para a camada que será empilhada na arquitetura.

inline void Fit(int epochs, int batch_size, const Eigen::MatrixXf &input, const Eigen::MatrixXf &labels, Loss &loss_function, Optimizer &optimizer)#

Realiza o treinamento do modelo (Mini-Batch Gradient Descent).

  • Este é o loop principal de treinamento. Ele subdivide os dados em minilotes (batches), executa as etapas de Feedforward, Loss, Backpropagation e Otimização iterativamente. Além disso, registra a evolução das métricas em um arquivo CSV para análise posterior.

Parameters:
  • epochs – Número de vezes que o modelo iterará sobre todo o conjunto de dados.

  • batch_size – Quantidade de amostras processadas simultaneamente antes de uma atualização de pesos.

  • input – Matriz contendo o conjunto completo de dados de treinamento.

  • labels – Matriz contendo os rótulos reais do conjunto de treinamento.

  • loss_function – Referência para a métrica de erro objetivo.

  • optimizer – Referência para a regra de atualização dos pesos.

inline void Evaluate(const Eigen::MatrixXf &input, const Eigen::MatrixXf &labels)#

Avalia o desempenho do modelo treinado em um conjunto de testes isolado.

  • Processa os dados em Modo de Inferência (sem chamar o backward pass ou atualizar pesos).

Parameters:
  • input – Matriz de dados de teste (dados invisíveis durante o treinamento).

  • labels – Rótulos reais dos dados de teste.

inline void SaveModel(std::ofstream &file)#

Persiste o estado interno (pesos e vieses treinados) de todo o modelo em disco.

Parameters:

file – Referência para o fluxo de saída em arquivo.