reinizio a metterci mano per completarlo

This commit is contained in:
2026-03-19 13:09:41 +01:00
parent da043d4d19
commit 488ba04b2f
2 changed files with 42 additions and 4 deletions
+25 -4
View File
@@ -1,14 +1,15 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
char *file_pesi = "rete_pesi.bin";
#include "mnist/mnist_manager.h"
//#include "mnist/mnist_manager.h"
/* char *file_immagini = "mnist/t10k-images.idx3-ubyte";
char *file_label = "mnist/t10k-labels.idx1-ubyte"; */
char *file_immagini = "mnist/train-images.idx3-ubyte";
char *file_label = "mnist/train-labels.idx1-ubyte";
//char *file_immagini = "mnist/train-images.idx3-ubyte";
//char *file_label = "mnist/train-labels.idx1-ubyte";
//#include "cifar-10/cifar10_manager.h";
@@ -19,7 +20,7 @@ char *file_label = "mnist/train-labels.idx1-ubyte";
// char *file_immagini = "cifar-10/data_batch_5.bin";
//char *file_immagini = "cifar-10/test_batch.bin";
// #include "xor_manager.h"
#include "xor_manager.h"
// Siccome il char è un byte che rappresenta il valore tra 0 e 255. Per evitare confusioni definisco il tipo "byte" come in Java
typedef unsigned char byte;
@@ -69,6 +70,8 @@ int previsione(double);
void salvaReteNeurale(const char *, ReteNeurale *);
ReteNeurale *caricaReteNeurale(const char *);
void stampa_pesi_rete(ReteNeurale);
/*
################# INIZIALIZZAZIONI ################################
*/
@@ -112,6 +115,7 @@ Layer inizializza_layer(int n_percettroni, int n_pesi)
ReteNeurale inizializza_rete_neurale(int numero_layers, int numero_percettroni_iniziali, int numero_input)
{
srand(time(NULL));
ReteNeurale r;
r.layers = (Layer *)malloc(sizeof(Layer) * numero_layers);
r.size = numero_layers;
@@ -394,3 +398,20 @@ ReteNeurale *caricaReteNeurale(const char *filename)
fclose(file);
return rete;
}
/*
################ STAMPE ############################
*/
void stampa_pesi_rete(ReteNeurale rete) {
for(int indice_layer = 0; indice_layer < rete.size; indice_layer++) {
printf("\nLivello %d", indice_layer);
for(int indice_percettrone = 0; indice_percettrone < rete.layers[indice_layer].size; indice_percettrone++) {
printf("\n\tPercettrone %d", indice_percettrone);
for(int indice_peso = 0; indice_peso < rete.layers[indice_layer].percettroni[indice_percettrone].size; indice_peso++) {
printf("\n\t\tPeso %d: %f", indice_peso, rete.layers[indice_layer].percettroni[indice_percettrone].pesi[indice_peso]);
}
}
}
printf("\n");
}