Anja Freudenreich 160cae39e4 adding content
2025-09-25 11:13:22 +02:00

68 lines
1.9 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include "imageInput.h"
#include "mnistVisualization.h"
#include "neuralNetwork.h"
int main(int argc, char *argv[])
{
const unsigned int windowWidth = 800;
const unsigned int windowHeight = 600;
int exitCode = EXIT_FAILURE;
if(argc == 3)
{
const char *pathToMnist = argv[1];
const char *pathToModel = argv[2];
GrayScaleImageSeries *series = readImages(pathToMnist);
if(series != NULL)
{
NeuralNetwork model = {NULL, 0};
printf("Loaded %u images ... \n", series->count);
model = loadModel(pathToModel);
if(model.numberOfLayers > 0)
{
unsigned char *predictions = NULL;
printf("Processing %u images ...\n", series->count);
predictions = predict(model, series->images, series->count);
if(predictions != NULL)
{
showMnist(windowWidth, windowHeight, series, predictions);
free(predictions);
exitCode = EXIT_SUCCESS;
}
else
{
fprintf(stderr, "Error while processing images ...\n");
exitCode = EXIT_FAILURE;
}
clearModel(&model);
}
else
{
fprintf(stderr, "Error while loading model from %s ...\n", pathToModel);
exitCode = EXIT_FAILURE;
}
}
else
{
fprintf(stderr, "Error while reading images from %s ...\n", pathToMnist);
exitCode = EXIT_FAILURE;
}
clearSeries(series);
}
else
{
fprintf(stderr, "Usage: %s <mnist file> <model file>\n", argv[0]);
exitCode = EXIT_FAILURE;
}
return exitCode;
}