web-dev-qa-db-fra.com

Qu'est-ce qu'un lot dans TensorFlow?

La documentation d'introduction, que je lis ( TOC here ) présente le terme ici sans l'avoir définie.

[1] https://www.tensorflow.org/get_started/
[2] https://www.tensorflow.org/tutorials/mnist/tf/
27

Supposons que vous souhaitiez faire de la reconnaissance de chiffres (MNIST) et que vous ayez défini votre architecture de réseau (CNN). Maintenant, vous pouvez commencer à alimenter les images des données d’entraînement une par une sur le réseau, obtenir la prédiction (jusqu’à ce que cette étape soit appelée = [inférence), calculer la perte, calculer le gradient, puis mettez à jour les paramètres de votre réseau (c'est-à-dire poids et biais), puis passez à l'image suivante ... Cette manière de former le modèle est parfois appelé comme apprentissage en ligne.

Cependant, vous souhaitez que la formation soit plus rapide, les gradients moins bruyants et que vous tiriez parti de la puissance des GPU qui sont efficaces pour effectuer des opérations sur les baies ( nD-baies spécifiques. . Donc, ce que vous faites à la place est d’alimenter 100 images à la fois (le choix de cette taille vous appartient (c’est-à-dire un hyperparameter) et dépend de votre problème aussi). Par exemple, regardez la photo ci-dessous, (Auteur: Martin Gorner)

Batch size of 100

Ici, puisque vous alimentez 100 images (28x28) à la fois (au lieu de 1 comme dans le cas de formation en ligne), la taille du lot est de 100 . Souvent, cela s'appelle taille du mini-lot ou simplement mini-batch.


Aussi l'image ci-dessous: (Auteur: Martin Gorner)

batch size again

Maintenant, la multiplication de la matrice fonctionnera parfaitement et vous profiterez également des opérations hautement optimisées sur les baies pour atteindre plus rapidement formation temps.

Si vous observez la photo ci-dessus, peu importe que vous donniez 100, 256, 2048 ou 10 000 ( taille du lot), dans la mesure où cela tient dans la mémoire de votre (GPU). ) Matériel. Vous obtiendrez simplement autant de prédictions.

Mais gardez à l’esprit que cela la taille du lot influence le temps d’entraînement, l’erreur que vous obtenez, les décalages de pente, etc. Il n’existe pas de règle générale permettant de déterminer la taille du lot qui convient. meilleur. Essayez quelques tailles et choisissez celle qui vous convient le mieux. Mais essayez de ne pas utiliser des lots de grande taille car cela surchargerait les données. Les utilisateurs utilisent généralement des tailles de mini-lots de 32, 64, 128, 256, 512, 1024, 2048.


Bonus : Pour bien comprendre à quel point la taille de ce lot est dingue, donnez à cet article une lecture: truc bizarre pour parallélisation des CNN

46
kmario23