Clean up (1)
This commit is contained in:
parent
f836c53711
commit
cf8b0a8b94
8 changed files with 312 additions and 302 deletions
61
main.c
61
main.c
|
|
@ -4,26 +4,61 @@
|
|||
#include "neuronal_network.h"
|
||||
|
||||
int main() {
|
||||
Image** images = import_images("../data/train-images.idx3-ubyte", "../data/train-labels.idx1-ubyte", NULL, 60000);
|
||||
|
||||
const int amount_of_images_to_load = 60000;
|
||||
const int amount_of_images_used_to_train = 30000;
|
||||
const int amount_of_images_used_to_test = 1000;
|
||||
const int input_size = 28*28;
|
||||
const int hidden_layer_size = 50;
|
||||
const int hidden_layer_count = 3;
|
||||
const double learning_rate = 0.1;
|
||||
|
||||
/*
|
||||
* Loading Images from Dataset
|
||||
*/
|
||||
|
||||
Image** images = import_images("../data/train-images.idx3-ubyte", "../data/train-labels.idx1-ubyte", NULL, amount_of_images_to_load);
|
||||
|
||||
// img_visualize(images[0]);
|
||||
// img_visualize(images[1]);
|
||||
// img_print(images[0]);
|
||||
|
||||
// matrix_print(images[0]->pixel_values);
|
||||
// matrix_print(images[1]->pixel_values);
|
||||
/*
|
||||
* Create a new network and randomize the weights
|
||||
*/
|
||||
|
||||
Neural_Network* nn = new_network(28*28, 50, 3, 10, 0.1);
|
||||
randomize_network(nn, 1);
|
||||
// Neural_Network* nn = load_network("../networks/newest_network.txt");
|
||||
Neural_Network* network = new_network(input_size, hidden_layer_size, hidden_layer_count, 10, learning_rate);
|
||||
randomize_network(network, 1);
|
||||
|
||||
for (int i = 0; i < 60000; ++i) {
|
||||
train_network(nn, images[i], images[i]->label);
|
||||
/*
|
||||
* Training
|
||||
*/
|
||||
|
||||
for (int i = 0; i < amount_of_images_used_to_train; i++) {
|
||||
train_network(network, images[i], images[i]->label);
|
||||
}
|
||||
|
||||
// batch_train(nn, images, 30000, 2);
|
||||
// Batch training works if you change the train_network method, but the results are not that good (needs further testing)
|
||||
// batch_train(nn, images, 30000, 2);
|
||||
|
||||
printf("Trinaing Done!\n");
|
||||
|
||||
// save_network(nn);
|
||||
/*
|
||||
* Saving and Loading
|
||||
*/
|
||||
|
||||
printf("%lf\n", measure_network_accuracy(nn, images, 10000));
|
||||
// save_network(network);
|
||||
// Neural_Network* network = load_network("../networks/newest_network.txt");
|
||||
|
||||
}
|
||||
/*
|
||||
* Measure Accuracy & predict single images
|
||||
*/
|
||||
|
||||
printf("Accuracy: %lf\n", measure_network_accuracy(network, images, amount_of_images_used_to_test));
|
||||
|
||||
// matrix_print(predict_image(network, images[0]));
|
||||
|
||||
images_free(images, amount_of_images_to_load);
|
||||
free_network(network);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue