Maintenant, la question est de savoir comment gérer de si grandes tailles d'image où il n'y a pas de privilèges de sous-échantillonnage
Je suppose que par sous-échantillonnage, vous entendez une réduction de l'entrée avant de la passer dans CNN. La couche convolutionnelle permet de sous-échantillonner l'image au sein d'un réseau, en choisissant une grande foulée, ce qui va économiser des ressources pour les couches suivantes. En fait, c'est ce qu'il doit faire, sinon votre modèle ne rentrera pas dans le GPU.
1) Existe-t-il des techniques pour manipuler des images aussi grandes qui doivent être entraînées?
Les recherches les plus courantes mettent à l'échelle les images à une taille raisonnable. Mais si ce n'est pas une option pour vous, vous devrez restreindre votre CNN. En plus de sous-échantillonner dans les premières couches, je vous recommande de vous débarrasser de la couche FC (qui prend normalement la plupart des paramètres) au profit de la couche convolutionnelle . Vous devrez également diffuser vos données à chaque époque, car elles ne rentreront pas dans votre GPU.
Notez que rien de tout cela n'empêchera une lourde charge de calcul dans les premières couches, exactement parce que l'entrée est si grande: la convolution est une opération coûteuse et les premières couches en effectueront beaucoup à chaque passage avant et arrière. Bref, la formation sera lente.
2) Quelle taille de lot est raisonnable à utiliser?
Voici un autre problème. Une seule image prend 2400x2400x3x4
(3 canaux et 4 octets par pixel) qui est ~ 70 Mo, vous pouvez donc difficilement vous permettre même une taille de lot 10. Plus réaliste serait 5. 5. Notez que la plupart de la mémoire sera prise par les paramètres CNN. Je pense que dans ce cas, il est logique de réduire la taille en utilisant des valeurs 16 bits plutôt que 32 bits - de cette façon, vous pourrez doubler les lots.
3) Y a-t-il des précautions à prendre ou une augmentation et une diminution des ressources matérielles que je peux faire?
Votre goulot d'étranglement est la mémoire GPU. Si vous pouvez vous permettre un autre GPU, procurez-vous-le et divisez le réseau entre eux. Tout le reste est insignifiant par rapport à la mémoire GPU.
Habituellement, pour les images, l'ensemble de fonctionnalités correspond aux valeurs de densité de pixels et, dans ce cas, il en résulte un ensemble de fonctionnalités assez important; il est également déconseillé de sous-échantillonner les images, car vous risquez de perdre (ou de perdre) des données importantes.
[1] Mais il existe certaines techniques qui peuvent vous aider à réduire la taille du jeu de fonctionnalités, des approches comme PCA (Principle Component Analysis) vous aident à sélectionner un sous-ensemble de fonctionnalités important.
Pour des informations détaillées, voir le lien http://spark.apache.org/docs/latest/ml-features.html#pca .
[2] Autre que cela pour réduire les dépenses de calcul lors de la formation de votre réseau neuronal, vous pouvez utiliser la descente de gradient stochastique, plutôt que l'utilisation conventionnelle de l'approche de descente de gradient, ce qui réduirait la taille de l'ensemble de données requis pour la formation à chaque itération. Ainsi, la taille de votre ensemble de données à utiliser en une seule itération réduirait, donc réduirait le temps nécessaire pour former le réseau.
La taille exacte du lot à utiliser dépend de votre distribution pour le jeu de données de formation et le jeu de données de test, une utilisation plus générale est 70-30. Où vous pouvez également utiliser l'approche stochastique mentionnée ci-dessus pour réduire le temps requis.
Détail pour la descente de gradient stochastique http://scikit-learn.org/stable/modules/sgd.html
[3] Le matériel semble approprié pour la mise à niveau serait nécessaire, mais si nécessaire, regardez des solutions cloud comme AWS où vous pouvez obtenir un abonnement gratuit à un compte jusqu'à une limite d'utilisation.
la source
Ces données volumineuses ne peuvent pas être chargées dans votre mémoire. Permet de diviser ce que vous pouvez faire en deux:
la source