#ifndef NEURALNETWORK_H #define NEURALNETWORK_H #define checkFileHeader image_input_check_file_header_guard #define readDimension image_input_read_dimension_guard #include "imageInput.h" #undef checkFileHeader #undef readDimension #include "matrix.h" #define NEURAL_NETWORK_FILE_HEADER "__info2_neural_network_file_format__" typedef void (*ActivationFunctionType)(Matrix *X); typedef struct { Matrix weights; Matrix biases; ActivationFunctionType activation; } Layer; typedef struct { Layer *layers; unsigned int numberOfLayers; } NeuralNetwork; NeuralNetwork loadModel(const char *path); unsigned char *predict(const NeuralNetwork model, const GrayScaleImage images[], unsigned int numberOfImages); void clearModel(NeuralNetwork *model); #endif