mirror of
https://github.com/augustin64/projet-tipe
synced 2025-02-02 19:39:39 +01:00
cnn: Remove STORE_IMAGES_TO_RAM option
This commit is contained in:
parent
446aa2c734
commit
4e1cf3e627
@ -42,13 +42,6 @@
|
|||||||
|
|
||||||
|
|
||||||
//** Paramètres d'optimisation
|
//** Paramètres d'optimisation
|
||||||
//* Paramètre d'optimisation pour un dataset Jpeg
|
|
||||||
// keep images in ram e.g re-read and decompress each time
|
|
||||||
// Enabling this will lead to a large amount of ram used while economizing not that
|
|
||||||
// much computing power
|
|
||||||
// Note: 50States10K dataset is 90Go once decompressed, use with caution
|
|
||||||
//#define STORE_IMAGES_TO_RAM
|
|
||||||
|
|
||||||
//* Optimisation de libération de la mémoire pour de larges réseaux
|
//* Optimisation de libération de la mémoire pour de larges réseaux
|
||||||
// En utilisant CUDA, de larges réseaux créés dans src/common/memory_management.cu
|
// En utilisant CUDA, de larges réseaux créés dans src/common/memory_management.cu
|
||||||
// peuvent prendre jusqu'à plusieurs heures pour être libérés
|
// peuvent prendre jusqu'à plusieurs heures pour être libérés
|
||||||
|
@ -24,7 +24,7 @@ typedef struct jpegDataset {
|
|||||||
unsigned int height; // Hauteur des images
|
unsigned int height; // Hauteur des images
|
||||||
|
|
||||||
unsigned int* labels; // Labels
|
unsigned int* labels; // Labels
|
||||||
unsigned char** images; // Images en cache, vaut NULL si STORE_IMAGES_TO_RAM n'est pas défini
|
unsigned char** images; // Images en cache
|
||||||
char** fileNames; // Noms de fichiers
|
char** fileNames; // Noms de fichiers
|
||||||
} jpegDataset;
|
} jpegDataset;
|
||||||
|
|
||||||
|
@ -157,19 +157,7 @@ jpegDataset* loadJpegDataset(char* folderPath) {
|
|||||||
dataset->images = (unsigned char**)malloc(sizeof(unsigned char*)*dataset->numImages);
|
dataset->images = (unsigned char**)malloc(sizeof(unsigned char*)*dataset->numImages);
|
||||||
for (int i=0; i < (int)dataset->numImages; i++) {
|
for (int i=0; i < (int)dataset->numImages; i++) {
|
||||||
dataset->images[i] = NULL;
|
dataset->images[i] = NULL;
|
||||||
#ifdef STORE_IMAGES_TO_RAM
|
|
||||||
if (i%1000 == 0) {
|
|
||||||
printf("[%d/%d] Chargement des images\r\n", i, dataset->numImages);
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
|
||||||
image = loadJpegImageFile(dataset->fileNames[i]);
|
|
||||||
dataset->images[i] = image->lpData;
|
|
||||||
free(image);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#ifdef STORE_IMAGES_TO_RAM
|
|
||||||
printf("Chargement des images terminé \n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Lecture des caractéristiques des images
|
// Lecture des caractéristiques des images
|
||||||
image = loadJpegImageFile(dataset->fileNames[0]);
|
image = loadJpegImageFile(dataset->fileNames[0]);
|
||||||
@ -245,9 +233,6 @@ void addFilenamesToArray(char* path, char** array, int* index) {
|
|||||||
void free_dataset(jpegDataset* dataset) {
|
void free_dataset(jpegDataset* dataset) {
|
||||||
for (int i=0; i < (int)dataset->numImages; i++) {
|
for (int i=0; i < (int)dataset->numImages; i++) {
|
||||||
free(dataset->fileNames[i]);
|
free(dataset->fileNames[i]);
|
||||||
#ifdef STORE_IMAGES_TO_RAM
|
|
||||||
free(dataset->images[i]);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
free(dataset->fileNames);
|
free(dataset->fileNames);
|
||||||
free(dataset->labels);
|
free(dataset->labels);
|
||||||
|
@ -19,12 +19,6 @@ int main(int argc, char* argv[]) {
|
|||||||
printf("Nombre de catégories: %d\n", dataset->numCategories);
|
printf("Nombre de catégories: %d\n", dataset->numCategories);
|
||||||
printf("Nombre d'images: %d\n", dataset->numImages);
|
printf("Nombre d'images: %d\n", dataset->numImages);
|
||||||
printf("Taille des images: %dx%d\n", dataset->width, dataset->height);
|
printf("Taille des images: %dx%d\n", dataset->width, dataset->height);
|
||||||
#ifdef STORE_IMAGES_TO_RAM
|
|
||||||
if (!dataset->images) {
|
|
||||||
printf_error("Aucune image n'a été chargée\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Calcul du temps de chargement des images une à une
|
// Calcul du temps de chargement des images une à une
|
||||||
double start_time, end_time;
|
double start_time, end_time;
|
||||||
@ -47,15 +41,6 @@ int main(int argc, char* argv[]) {
|
|||||||
printf("%d\n", i);
|
printf("%d\n", i);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#ifdef STORE_IMAGES_TO_RAM
|
|
||||||
if (!dataset->images[i]) {
|
|
||||||
printf_error("Image non chargée à l'index ");
|
|
||||||
printf("%d\n", i);
|
|
||||||
printf_error("Nom du fichier: ");
|
|
||||||
printf("%s\n", dataset->fileNames[i]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free_dataset(dataset);
|
free_dataset(dataset);
|
||||||
|
Loading…
Reference in New Issue
Block a user