2017-06-15 8 views
3

Ich benutze Keras mit Tensorflow-Backend auf einem Computer mit einer NVIDIA Tesla K20c GPU. (CUDA 8)Niedrige GPU-Nutzung durch Keras/Tensorflow?

Ich trainiere ein relativ einfaches Convolutional Neural Network, während des Trainings führe ich das Terminalprogramm nvidia-smi aus, um die GPU zu überprüfen. Wie Sie in der folgenden Ausgabe sehen können, zeigt die GPU-Auslastung im Allgemeinen etwa 7% -13%

Meine Frage ist: während der CNN-Training sollte nicht die GPU-Nutzung höher sein? ist das ein Zeichen für eine schlechte GPU Konfiguration oder Verwendung von Keras/Tensorflow?

nvidia-smi output

enter image description here

Antwort

4

kann aus verschiedenen Gründen, aber wahrscheinlich sind Sie einen Engpass haben, wenn die Trainingsdaten zu lesen. Da Ihre GPU eine Charge verarbeitet hat, benötigt sie mehr Daten. Abhängig von Ihrer Implementierung kann dies dazu führen, dass die GPU darauf wartet, dass die CPU mehr Daten lädt, was zu einer niedrigeren GPU-Nutzung und einer längeren Trainingszeit führt.

Versuchen Sie, alle Daten in den Speicher zu laden, wenn es passt oder verwenden Sie eine QueueRunner, die eine Eingangspipeline Daten im Hintergrund lesen wird. Dadurch verringert sich die Zeit, die Ihre GPU auf mehr Daten wartet.

Die Reading Data Guide auf der TensorFlow-Website enthält weitere Informationen.

Verwandte Themen