Сначала я бы запустил один из коротких «тестов» , чтобы убедиться, что Tensorflow использует графический процессор. Например, я предпочитаю @ ответ Сальвадора Дали в этом связанном вопросе
import tensorflow as tf
with tf.device('/gpu:0'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
with tf.Session() as sess:
print (sess.run(c))
Если Tensorflow действительно использует ваш графический процессор, вы должны увидеть результат умножения матрицы. В противном случае достаточно длинная трассировка стека, указывающая, что "gpu:0
" не может быть найден.
Если все это работает хорошо, я бы порекомендовал использовать утилиту Nvidia smi.exe
. Он доступен как для Windows, так и для Linux, и AFAIK устанавливается с драйвером Nvidia. В системе Windows она находится по адресу
C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe
Откройте командную строку Windows и перейдите в этот каталог. Затем запустите
nvidia-smi.exe -l 3
Это покажет вам экран, который обновляется каждые три секунды.
Здесь мы можемувидеть различную информацию о состоянии графических процессоров и о том, что они делают. Особый интерес в этом случае представляют столбцы «Pwr: Usage / Cap» и «Volatile GPU-Util». Если ваша модель действительно использует / a графический процессор, эти столбцы должны увеличиваться «мгновенно», как только вы начнете тренировать модель.
Скорее всего, вы увидите увеличение скорости и температуры вентилятора, если у вас нет очень хорошего решения для охлаждения. В нижней части распечатки вы также должны увидеть процесс с именем, похожим на «python» или «Jupityr».
Если это не дает ответов относительно медленного времени обучения, то я бы предположил, что проблема заключается в модели и самом коде. И я думаю, что это действительно так. В частности, просмотр списка «Диспетчеры задач Windows» для «Использование памяти выделенного графического процессора» проверен на максимальный уровень.