aggiustamento codice e libreria
This commit is contained in:
@@ -19,7 +19,7 @@ Byte 8 in poi: 60.000 byte, ognuno dei quali rappresenta l'etichetta di un'immag
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define N_PIXEL 784 // Immagine 28x28
|
||||
#define N_INPUTS 784 // Immagine 28x28
|
||||
|
||||
// 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;
|
||||
@@ -27,8 +27,8 @@ typedef unsigned char byte;
|
||||
// Singola istanza del dataset.
|
||||
typedef struct
|
||||
{
|
||||
byte categoria;
|
||||
byte immagine[N_PIXEL];
|
||||
byte classificazione;
|
||||
byte dati[N_INPUTS];
|
||||
} Istanza;
|
||||
|
||||
// Questo tipo fornisce il vettore delle istanze e il size (dimensione) del vettore
|
||||
@@ -64,10 +64,10 @@ Dataset *get_dataset(char *path_mnist, char *path_categoria)
|
||||
int numero_righe = 0;
|
||||
|
||||
//Leggo male il file, cambiare in base alle dichiarazioni sopra
|
||||
if(fread(istanze[numero_righe].immagine, sizeof(byte), 16, file) == 16 && fread(&istanze[numero_righe].categoria, sizeof(byte), 8, categorie) == 8)
|
||||
while (fread(istanze[numero_righe].immagine, sizeof(byte), N_PIXEL, file) == N_PIXEL)
|
||||
if(fread(istanze[numero_righe].dati, sizeof(byte), 16, file) == 16 && fread(&istanze[numero_righe].classificazione, sizeof(byte), 8, categorie) == 8)
|
||||
while (fread(istanze[numero_righe].dati, sizeof(byte), N_INPUTS, file) == N_INPUTS)
|
||||
{
|
||||
if(fread(&istanze[numero_righe].categoria, sizeof(byte), 1, categorie) == 1) {
|
||||
if(fread(&istanze[numero_righe].classificazione, sizeof(byte), 1, categorie) == 1) {
|
||||
numero_righe++;
|
||||
istanze = (Istanza *)realloc(istanze, sizeof(Istanza) * (numero_righe + 1));
|
||||
}
|
||||
@@ -81,7 +81,7 @@ Dataset *get_dataset(char *path_mnist, char *path_categoria)
|
||||
return set;
|
||||
}
|
||||
|
||||
void salva_dataset(const char *filename, Dataset *set)
|
||||
/* void salva_dataset(const char *filename, Dataset *set)
|
||||
{
|
||||
FILE *file = fopen(filename, "wb");
|
||||
if (!file)
|
||||
@@ -92,12 +92,12 @@ void salva_dataset(const char *filename, Dataset *set)
|
||||
|
||||
for (int indice_istanze = 0; indice_istanze < set->size; indice_istanze++)
|
||||
{
|
||||
fwrite(&set->istanze[indice_istanze].categoria, sizeof(byte), 1, file);
|
||||
fwrite(&set->istanze[indice_istanze].immagine, sizeof(byte), N_PIXEL, file);
|
||||
fwrite(&set->istanze[indice_istanze].classificazione, sizeof(byte), 1, file);
|
||||
fwrite(&set->istanze[indice_istanze].dati, sizeof(byte), N_INPUTS, file);
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
}
|
||||
} */
|
||||
|
||||
/* void main() {
|
||||
Dataset *set = get_dataset("t10k-images.idx3-ubyte", "t10k-labels.idx1-ubyte");
|
||||
@@ -108,6 +108,6 @@ void salva_dataset(const char *filename, Dataset *set)
|
||||
}
|
||||
|
||||
for(int i = 0; i < set->size; i++) {
|
||||
printf("immagine %d - valore rappresentato: %d\n", i, set->istanze[i].categoria);
|
||||
printf("immagine %d - valore rappresentato: %d\n", i, set->istanze[i].classificazione);
|
||||
}
|
||||
} */
|
||||
Reference in New Issue
Block a user