Je me demande ce que représente réellement l’argument « batch_size » de la méthode flow_from_dataframe. Il est utilisé dans le notebook #8.
De ce que je comprends, cet argument est le nombre d’images générés (zoom, flip, rotation …) à partir d’une seule image originale.
Si on a par exemple une base de 100 images originales, si batch_size = 32, on se retrouvera avec une base d’entrainement de 32*100 = 3200 images ?
Pouvez-vous également expliquer les valeurs des arguments ‹ steps_per_epoch › et ‹ validation_steps ›. Je ne comprends pas pourquoi ils dépendent de batch_size:
La batch_size n’est pas le nombre d’images générées à partir de chaque image originale.
Un batch est un ensemble de données d’entraînement sur lequel on fait une mise à jour des poids d’un réseau lors de l’entraînement. C’est un méthode classique utilisée en Deep Learning pour accélerer l’apprentissage d’un réseau.
Quel est le principe de fonctionnement d’un entraînement avec des batchs ?
De manière classique, lors d’un entraînement, si on a 100 images en entrée et que l’on ne fait pas de batchs, on va calculer le gradient de la fonction de coût par rapport aux poids pour chacune des données d’entraînement, et à chaque fois on met à jour les poids. Cela devient couteux de mettre à jour 100 fois les poids pour passer sur chacune des données d’entraînement.
Pour réduire le nombre de mise à jour des poids, on groupe les données en batch (ici 32), on fait la moyenne du gradient sur ces 32 images puis on met à jour pour chacun de ces steps les poids du réseau. Comme on regroupe les données d’entraînement, on a donc autant de steps que la taille du dataset divisée par la taille de chaque batch.
Lorsque que l’on a fait tous ces steps, on a vu l’ensemble des données d’entraînement. Il s’agit d’une epoch.
Cet argument n’est pas spécifique à la méthode flow_from_dataframe mais à tous les datasets en générale !
Pour compléter sur la méthode flow_from_dataframe, ici les éléments du batch seront donc des images générées, une par images initiales des données d’entraînement.
J’espère que cette réponse aura été claire, peut être un peu plus générale. Tu peux indiquer si cette réponse t’as été utile à l’aide du en bas de ce message