-1
votes

Keras ImageDaTagenarator: IncoSistance dans les fonctions de flux Paramètre

Je me débats avec l'augmentation de l'image à Keras.

Le concept, où je définis un ImageDaTagenerator pour modifier les données et une fonction de flux pour l'appliquer aux données est (ou semble) claire à moi.

Mais pourquoi les fonctions de flux ( flux , flow_from_dataframe , flow_from_directory ) différent de l'autre? Leur but est clair pour moi: ils gèrent des données avec différents types de sources.

Je veux dire la différence dans les paramètres à passer. Surtout, une différence se vient à mon esprit: pour le flux (où j'augmente les données déjà chargées)

Je n'ai pas la possibilité d'indiquer un mécanisme d'interpolation. Mais n'en ai pas besoin d'un alors?


3 commentaires

La différence est l'endroit où les données proviennent de


La principale différence entre eux est des éléments de données que vous souhaitez générer: flux pour les tableaux numpy en mémoire, flow_from_directory pour répertoires d'images, etc. Qu'est-ce que tu as signifie avec incohérence?


@SDCBR: Merci, devait clarifier cela avec des modifications


3 Réponses :


1
votes

Vous choisissez la fonction de débit appropriée en fonction de la quantité de données que vous avez et comment vous l'avez organisée.

flux () est destiné aux petits ensembles de données que vous pouvez gérer complètement en mémoire.

flow_from_directory () lira des fichiers de sous-répertoires dans un répertoire parent, à l'aide du nom de chaque sous-répertoire comme étiquette. Ce choix est bon si vous avez une grande quantité de données organisées par le répertoire. Cela peut devenir un défi si vous avez un ensemble commun de fichiers avec différents ensembles de fonctionnalités que vous souhaitez former, car vous devrez stocker une copie redondante de vos données dans différents sous-répertoires (ou au moins créer des annuaires remplis de liens symboliques. qui pointez sur votre stockage de fichiers réel).

flow_from_dataframe () lira des fichiers et des étiquettes comme spécifié par un Dataframe Pandas. Cette fonction est un ajout plus récemment et c'est le choix le plus flexible car vous pouvez stocker une copie unique de vos fichiers à l'aide de toute structure de répertoire que vous préférez, et vous pouvez générer votre Dataframe à partir de métadonnées stockées sous forme de fichier CSV, une base de données, une base de données, une base de données. ou toute autre méthode que Pandas prend en charge.


0 commentaires

0
votes

Flux est généralement utilisé avec le Classe ImageDatagenerator

Lorsque la pipeline d'augmentation en général est basée sur un objet ImageDatageneration, qui a l'argument Fill_Mode = 'Le plus proche' - il s'agit donc de la manière dont vous pourrez définir votre mécanisme d'interpolation.

Voir un exemple de travail des docs ici: xxx


0 commentaires

0
votes

Merci pour tous vos messages et commentaires. Malheureusement, aucune des réponses publiées ne s'applique pleinement à ma question. J'ai fait des recherches et avons traversé tout le code Keras et j'ai trouvé une réponse que je peux maintenant travailler avec.

Je suppose que la documentation Keras m'a mal guidé un peu. J'ai mal interprété l'argument interpolation du flow_from_directory () et flow_from_directory () méthode. En pensant que cela est également utilisé pour zoomer dans l'image. Dans la documentation, cela devrait être indiqué plus clairement.

Tout d'abord, le point de Karl est valide. Chacune de ces fonctions est plus adaptée à une certaine quantité de données et à la source où l'obtenir. Ici, l'interpolation entre en place, où cela s'applique uniquement aux images chargées. Pour les images traitées avec la fonction de flux , on suppose que ces images ont déjà la taille de l'image souhaitée. Alors, cela doit être fait auparavant.

Le paramètre Fill_Mode ne fonctionne pas non plus pour l'interpolation, car il s'agit uniquement de définir le pixel virtuel autour de l'image réelle, afin d'effectuer une transformation affine.


0 commentaires