Quelle est la nécessité de définir la valeur steps_per_Epoch
lors de l’appel de la fonction fit_generator () alors qu’elle devrait idéalement être number of total samples/ batch size
?
Les générateurs de Keras sont infinis.
De ce fait, Keras ne peut pas savoir par lui-même combien de lots les générateurs doivent céder pour terminer une époque.
Lorsque vous avez un nombre d'échantillons statique, il est parfaitement logique d'utiliser samples//batch_size
pour une époque. Mais vous voudrez peut-être utiliser un générateur qui effectue une augmentation aléatoire des données, par exemple. Et en raison du processus aléatoire, vous ne pourrez jamais avoir deux périodes d’entraînement identiques. Il n'y a pas alors de limite claire.
Ainsi, ces paramètres dans fit_generator
vous permettent de contrôler les rendements par époque à votre guise, bien que dans les cas standard, vous gardiez probablement l'option la plus évidente: samples//batch_size
.
Sans augmentation de données, le nombre d'échantillons est statique, comme l'a mentionné Daniel . Ensuite, le nombre d'échantillons pour la formation correspond à la taille du lot steps_per_Epoch *.
En utilisant ImageDataGenerator dans Keras, nous créons des données d’entraînement supplémentaires pour l’augmentation des données. Par conséquent, vous pouvez définir vous-même le nombre d'échantillons à utiliser pour la formation .. Si vous voulez deux fois plus de données d'apprentissage, définissez simplement steps_per_Epoch sur (taille de l'échantillon d'origine * 2)/batch_size.