2017-07-16 4 views
0

Je forme des réseaux de neurones profonds avec l'utilisation de GPU. De temps en temps, si je fais un échantillon trop grand ou trop gros ou un réseau trop profond, je suis à court d'erreur de mémoire. Dans ce cas, parfois, il est possible de faire des lots plus petits et de former encore.Comment sélectionner la taille de lot automatiquement pour s'adapter à GPU?

Est-il possible de calculer la taille de GPU requise pour l'entraînement et déterminer à l'avance, quelle taille de lot choisir?

MISE À JOUR

Si je résumé du réseau Pring, il affiche le nombre de "paramètres" trainable. Je ne peux pas estimer à partir de cette valeur? Par exemple, prenez ceci, multipliez par la taille de lot, double pour des gradients etc.

Répondre

1

Non, ce n'est pas possible de le faire automatiquement. Donc, vous devez passer par beaucoup d'essais et d'erreurs pour trouver la taille appropriée si vous voulez que votre lot soit le plus possible.

Stanford's CNN class fournit des conseils sur la façon d'estimer la taille de la mémoire, mais toutes les suggestions sont liées à CNN (pas sûr de ce que vous entraînez).

0

Je pense que Salvador signifie ici qu'il n'est pas possible analytiquement de calculer la taille de lot la mieux adaptée, cependant, comme tout est en ML, c'est juste un autre hyperparamètre, qui peut être ajouté à votre recherche de grille pour être calculé automatiquement. Il suffit d'évaluer la perte ou la précision de votre modèle (quelle que soit la mesure de performance) pour obtenir la mesure la meilleure et la plus stable (moins variable) compte tenu de plusieurs tailles de lots, par exemple: 64, 256, 1024, etc. trouvé la taille du lot. Notez que la taille du lot peut dépendre de l'architecture de votre modèle, du matériel de la machine, etc. Par exemple, si vous déplacez votre modélisation d'un PC local vers un moteur de calcul cloud (GCP, AWS, Azure, ...), était trop grand pour la RAM de votre PC devient facilement adapté pour pratiquement illimité RAM/CPU/GPU (attention aux coûts).