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#
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.