Redimensionnement des images dans Keras ImageDataGenerator méthodes de flux d'
La Keras ImageDataGenerator
la classe fournit les deux méthodes de flux flow(X, y)
et flow_from_directory(directory)
(https://keras.io/preprocessing/image/).
Pourquoi le paramètre
target_size: n-uplet de nombres entiers, par défaut: (256, 256). Les dimensions auxquelles toutes les images seront redimensionnées
Seulement par flow_from_directory(répertoire) ? Et ce qui est le plus concis façon d'ajouter de la refonte des images pour le prétraitement pipeline à l'aide d' débit(X, y) ?
J'ai le même problème, si je suréchantillonner toutes les images avant de les nourrir dans la
flow()
méthode, je n'ai plus de mémoire.OriginalL'auteur user1934212 | 2017-01-20
Vous devez vous connecter pour publier un commentaire.
flow_from_directory(directory)
génère augmentée des images à partir du répertoire arbitraire de la collection d'images. Donc, il est nécessaire de paramètretarget_size
de faire toutes les images de la même forme.Tout
flow(X, y)
augmente les images qui sont déjà stockées dans une séquence de X qui n'est rien mais numpy matrice et peut être facilement traitées/redimensionnées avant de passer àflow
. Donc, pas besoin detarget_size
paramètre. Comme pour le redimensionnement, je préfère utiliserscipy.misc.imresize
surPIL.Image resize
, ou cv2.redimensionner comme il peut fonctionner sur numpy les données de l'image.Peut être redimensionnée avant de passer à l'écoulement? 32 go de mémoire est facilement devient plein, si je redimensionne toutes les images à la fois. C'est pourquoi nous avons besoin de flux() pour redimensionner lot par lot.
ImageDataGenerator accepte preprocessing_function dans la méthode constructeur. Selon la documentation, c'est ce que vous avez besoin
OriginalL'auteur indraforyou
parce que le code ci-dessus est maintenant déprécié...
OriginalL'auteur neuroscitech
Pour grand ensemble de données d'apprentissage, d'effectuer des transformations telles que le redimensionnement sur l'ensemble de la formation est la consommation de mémoire. Comme Keras n'en ImageDataGenerator, il est mieux de le faire par lot par lot. Autant que je sache, il existe 2 moyens de parvenir à cet autre que l'exploitation de l'ensemble de l'ensemble de données:
Voici un exemple de code si vous utilisez TensorFlow comme le backend de Keras:
OriginalL'auteur Tab