HolyFuckItsAlive #13
2 changed files with 8 additions and 8 deletions
8
main.c
8
main.c
|
|
@ -7,18 +7,18 @@ int main() {
|
|||
Image** images = import_images("../data/train-images.idx3-ubyte", "../data/train-labels.idx1-ubyte", NULL, 60000);
|
||||
// img_visualize(images[0]);
|
||||
|
||||
Neural_Network* nn = new_network(28*28, 32, 3, 10, 0.01);
|
||||
randomize_network(nn, 1);
|
||||
Neural_Network* nn = new_network(28*28, 100, 5, 10, 0.01);
|
||||
randomize_network(nn, 10);
|
||||
// save_network(nn);
|
||||
// Neural_Network* nn = load_network("../networks/test1.txt");
|
||||
|
||||
for (int i = 0; i < 20000; ++i) {
|
||||
for (int i = 0; i < 60000; ++i) {
|
||||
train_network(nn, images[i], images[i]->label);
|
||||
}
|
||||
|
||||
// train_network(nn, images[0], images[0]->label);
|
||||
// train_network(nn, images[0], images[0]->label);
|
||||
|
||||
printf("%lf\n", measure_network_accuracy(nn, images, 1000));
|
||||
printf("%lf\n", measure_network_accuracy(nn, images, 10000));
|
||||
|
||||
}
|
||||
|
|
@ -210,7 +210,7 @@ void train_network(Neural_Network* network, Image *image, int label) {
|
|||
delta = calculate_delta_hidden(previous_delta, network->weights[1], output[0]);
|
||||
delta_weights[0] = calculate_weights_delta(image_data, delta);
|
||||
|
||||
for (int i = 0; i < network->hidden_size ; ++i) {
|
||||
for (int i = 0; i < network->hidden_amount + 1; ++i) {
|
||||
apply_weights(network, delta_weights[i], i);
|
||||
}
|
||||
|
||||
|
|
@ -264,7 +264,7 @@ Matrix* calculate_delta_hidden(Matrix* next_layer_delta, Matrix* weights, Matrix
|
|||
|
||||
void apply_weights(Neural_Network* network, Matrix* delta_weights_matrix, int index) {
|
||||
|
||||
if(index > network->hidden_amount + 1 || index < 0) {
|
||||
if(index > network->hidden_amount || index < 0) {
|
||||
printf("ERROR: Index out of range! (apply_weights)");
|
||||
exit(1);
|
||||
}
|
||||
|
|
@ -274,8 +274,8 @@ void apply_weights(Neural_Network* network, Matrix* delta_weights_matrix, int in
|
|||
exit(1);
|
||||
}
|
||||
|
||||
for (int i = 0; i < delta_weights_matrix->rows; ++i) {
|
||||
for (int j = 0; j < delta_weights_matrix->columns; ++j) {
|
||||
for (int i = 0; i < delta_weights_matrix->rows; i++) {
|
||||
for (int j = 0; j < delta_weights_matrix->columns; j++) {
|
||||
network->weights[index]->numbers[i][j] += delta_weights_matrix->numbers[i][j];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue