2 votes

Python - Prétraitement d'un grand nombre de données d'image - La boucle se fige

J'ai le code suivant dans mon script Python :

def process_data(data):
    features = []

    for i in range(int(len(data))): # Should iterate 33'000 times (length of data)
        for j in range(3):
            img = plt.imread(data[i][j].strip()) # Data is from a csv file
            img = normalize(img)  # Simple calculation

            lis = img.flatten().tolist()
            features += lis

return features

Cela devrait fonctionner pendant environ 33'000*3 fois pour prétraiter l'ensemble des données. Cependant, après environ 10'000-12'000 itérations, le script ralentit radicalement, se bloque et parfois ma machine (i7 - 3.6GHz, 8GB RAM) se bloque aussi.

Qu'est-ce que je peux faire ? Il est difficile de diviser les données. On m'a dit d'utiliser la méthode Keras fit_generator avant, mais comment faire ?

0voto

rgacote Points 79

En fonction de la taille de ces fichiers image, il se peut que vous manquiez de RAM et que vous soyez obligé de faire un échange. Cela rendrait votre système plus lent. Au lieu de rassembler tous les fichiers traités dans une liste, pouvez-vous les écrire un par un ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X