Как определить, использует ли tenorflow ускорение gpu из оболочки Python?

303

Я установил тензор потока в моем Ubuntu 16.04, используя второй ответ здесь со встроенной установкой Ubuntu APT CUDA.

Теперь мой вопрос: как я могу проверить, действительно ли тензорный поток использует gpu? У меня GTX 960M GPU. Когда я import tensorflowэто выход

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally

Достаточно ли этого вывода, чтобы проверить, использует ли tenorflow gpu?

Тамим Аддари
источник
1
Вы должны увидеть что-то подобное в своем журнале: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 838] Создание устройства TensorFlow (/ gpu: 0) -> (устройство: 0, имя: GeForce GTX 980, идентификатор шины pci : 0000: 03: 00.0)
Ярослав Булатов
2
Есть log_device_placementподход в ответе. Самый надежный способ - посмотреть на временную шкалу, указанную в этом комментарии: github.com/tensorflow/tensorflow/issues/…
Ярослав Булатов,
Да, я получил этот вывод после ответа Яо Чжана ...
Тамим Аддари
@YaroslavBulatov в каком журнале? Записывает ли это в файл или где я могу проверить, появляется ли подобное утверждение?
Чарли Паркер
1
Это пишет в stdout или stderr
Ярослав Булатов

Ответы:

290

Нет, я не думаю, что "открытой библиотеки CUDA" достаточно, чтобы сказать, потому что разные узлы графа могут быть на разных устройствах.

Чтобы узнать, какое устройство используется, вы можете включить размещение устройства журнала следующим образом:

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Проверьте консоль на этот тип вывода.

Яо Чжан
источник
17
Я попробовал это, и он абсолютно ничего не печатает. Есть идеи, почему это может быть?
Qubix
8
Вы делали это на ноутбуке Jupyter?
Тамим Аддари
27
Вывод может быть получен на консоли, откуда вы запустили Jupyter Notebook.
musically_ut
18
Можем ли мы получить обновленный ответ для Tensorflow V2 (где tf.Sessions не поддерживаются).
iyop45
6
@ iyop45 Для тензорного потока V2 команда немного изменена:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Вандан
276

Помимо использования, sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))которое описано в других ответах, а также в официальной документации TensorFlow , вы можете попытаться назначить вычисление для GPU и посмотреть, есть ли у вас ошибка.

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))

Вот

  • "/ cpu: 0": процессор вашей машины.
  • «/ gpu: 0»: графический процессор вашей машины, если он у вас есть.

Если у вас есть графический процессор и вы можете использовать его, вы увидите результат. В противном случае вы увидите ошибку с длинной трассировкой стека. В итоге у вас будет что-то вроде этого:

Невозможно назначить устройство для узла 'MatMul': не удалось удовлетворить явную спецификацию устройства '/ device: GPU: 0', поскольку в этом процессе не зарегистрированы устройства, соответствующие этой спецификации.


Недавно в TF появилось несколько полезных функций:

Вы также можете проверить наличие доступных устройств в сеансе:

with tf.Session() as sess:
  devices = sess.list_devices()

devices вернет вам что-то вроде

[_DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:CPU:0, CPU, -1, 4670268618893924978),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 6127825144471676437),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 16148453971365832732),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:0, TPU, 17179869184, 10003582050679337480),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:1, TPU, 17179869184, 5678397037036584928)
Сальвадор Дали
источник
17
Результат: [[22. 28.] [49. 64.]]
Джордж Плигоропулос
6
@ GegePligor результат здесь не очень важен. Либо у вас есть результат, и графический процессор был использован, либо у вас есть ошибка, что означает, что он не был использован
Сальвадор Дали
1
Это не сработало для меня. Я запустил это в моем Docker-контейнере, который используется nvidia-docker и etcetc. Однако я не получаю ошибки, и процессор - тот, который делает работу. Я немного поднял матрицы (10k * 10k), чтобы они рассчитывались некоторое время. Загрузка процессора увеличилась до 100%, но графический процессор остался холодным как всегда.
pascalwhoop
При запуске в консоли я получил ошибку «нет устройств». В IDE вроде pycharm ошибки нет. Я предполагаю, что это связано с сессией, которую я использовал, которая отличается от консоли.
cn123h
Легко понять. Если GPU доступен, он напечатает что-то вродеFound device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
Леоли
166

Следующий фрагмент кода должен предоставить вам все устройства, доступные для tenorflow.

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Пример вывода

[name: "/ cpu: 0" device_type: "CPU" memory_limit: 268435456 locality {} воплощение: 4402277519343584096,

name: "/ gpu: 0" device_type: "GPU" memory_limit: 6772842168 воплощение locality {bus_id: 1}: 7471795903849088328 Physical_device_desc: "device: 0, имя: GeForce GTX 1070, идентификатор шины pci: 0000: 05: 00.0"]

Sheraz
источник
9
Это лучший ответ.
Lolski
3
и если эта команда не возвращает какую-либо запись с "GPU", означает ли это, что на моей машине просто есть GPU, или тензор потока не может ее найти?
mercury0114
@ mercury0114 это может быть либо. например, у вас может быть gpu, но у вас не установлен правильно tenorflow-gpu.
Jimijazz
4
Я не согласен, это не отвечает на вопрос: речь идет не о доступных устройствах, а об используемых устройствах . И это может быть совсем другая история! (например, TF будет использовать только 1 графический процессор по умолчанию.
Mayou36
имя: "/ device: GPU: 0" device_type: "GPU" memory_limit: 10711446324 воплощение {bus_id: 1 ссылки {}}: 17935632445266485019 Physical_device_desc: "устройство: 0, имя: GeForce RTX 2080 Ti, идентификатор шины pci: 0000: 01: 00.0, вычислительная мощность: 7,5 "]
Камран Каусар
89

Я думаю, что есть более простой способ достичь этого.

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

Это обычно печатает как

Default GPU Device: /device:GPU:0

Мне кажется, это проще, чем подробные записи.

Ишан Бхатт
источник
Согласовано. Проще, чем подходы, описанные выше. Выводит список используемых им графических процессоров. Спасибо
user907629
2
Лучший из всех
echan00
Это недействительный тест Он вернется в оператор else, даже если у вас установлена ​​версия tenorflow для GPU.
Годдард
68

Tensorflow 2.0

Сессии больше не используются в 2.0. Вместо этого можно использовать tf.test.is_gpu_available:

import tensorflow as tf

assert tf.test.is_gpu_available()
assert tf.test.is_built_with_cuda()

Если вы получили ошибку, вам нужно проверить вашу установку.

ma3oun
источник
Это также работает с TF 1.14 (может быть, даже несколько более старых версий)!
Overdrivr
6
Сейчас рекомендуется сделатьtf.config.list_physical_devices('GPU')
Рой Шилкрот
@Roy Shilkrot Я думаю, что tf.config.list_physical_devices ('GPU') 'не работает в Tensorflow 2.0
joselquin
1
@joselquin Документы TF v2.x утверждают, что он должен работать: tenorflow.org/api_docs/python/tf/config/experimental/… , и я могу убедиться, что он работает для меня.
Рой Шилкрот
29

Это подтвердит, что тензорный поток использует GPU во время тренировок?

Код

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Вывод

I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 730
major: 3 minor: 5 memoryClockRate (GHz) 0.9015
pciBusID 0000:01:00.0
Total memory: 1.98GiB
Free memory: 1.72GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
himanshurobo
источник
5
Пожалуйста, добавьте небольшое объяснение, почему ваш ответ работает (что делает log_device_placementи как увидеть CPU и GPU в выводе?). Это улучшит качество вашего ответа!
Нандер Спирстра
25

В дополнение к другим ответам, следующее должно помочь вам убедиться, что ваша версия tenorflow включает поддержку GPU.

import tensorflow as tf
print(tf.test.is_built_with_cuda())
karaspd
источник
7
Предупреждение: это говорит вам, если TensorFlow скомпилирован с GPU. Не используется ли GPU. (Если, например, драйверы не установлены должным образом, то используется процессор, даже если «is_built_with_cuda ()» имеет значение «истина».)
Рикардо Крус
19

Хорошо, сначала запустите ipython shellиз терминала и importTensorFlow:

$ ipython --pylab
Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: Qt5Agg

In [1]: import tensorflow as tf

Теперь мы можем наблюдать за использованием памяти GPU в консоли, используя следующую команду:

# realtime update for every 2s
$ watch -n 2 nvidia-smi

Поскольку мы только importредактировали TensorFlow, но еще не использовали графический процессор, статистика использования будет такой:

TF не-GPU использование

Обратите внимание, что использование памяти GPU очень мало (~ 700 МБ); Иногда использование памяти графическим процессором может составлять даже 0 МБ.


Теперь давайте загрузим графический процессор в наш код. Как указано в tf documentation, сделать:

In [2]: sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Теперь, смотреть статистику должны показать обновленный GPU использования памяти , как показано ниже:

TF GPU-часы

Теперь посмотрите, как наш процесс Python из оболочки ipython использует ~ 7 ГБ памяти GPU.


PS Вы можете продолжить просматривать эту статистику во время выполнения кода, чтобы увидеть, насколько интенсивно использование графического процессора со временем.

kmario23
источник
1
Я хотел бы пометить ответы. Этот золотой
Зейн Ризви
18

Это должно дать список устройств, доступных для Tensorflow (под Py-3.6):

tf = tf.Session(config=tf.ConfigProto(log_device_placement=True))
tf.list_devices()
# _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456)
f0nzie
источник
человек, которого я отклонил твой вопрос по ошибке ... если ты отредактируешь свой вопрос, я отменю свое отрицательное голосование
Francesco Boi
14

Я предпочитаю использовать nvidia-smi для мониторинга использования графического процессора. если он значительно возрастает при запуске программы, это сильный знак того, что ваш тензорный поток использует графический процессор.

Скотт Хуан
источник
Это косвенный путь
папабицепс
Как вы используете nvdia-smi для мониторинга использования графического процессора?
Разин
после установки cuda. nvidia-smi должен быть в вашей системе. Я обычно использую 'nvidia-smi -l' для мониторинга использования.
Скот Хуанг
3
Вы также можете использовать часы nvidia-smi, обновляет экран каждые 2 секунды
Perseus14
смотреть nvidia-smi у меня хорошо работает. Я также вижу в выводе, что мой процесс на Python использует GPU
formica
9

С последними обновлениями Tensorflow вы можете проверить это следующим образом:

tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None)

Это вернется, Trueесли GPU используется Tensorflow, и вернет Falseиначе.

Если вы хотите , устройство device_nameможно ввести: tf.test.gpu_device_name(). Получить более подробную информацию здесь

Суфиан Чами
источник
8

Запустите следующее в Jupyter,

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Если вы правильно настроили свою среду, вы получите следующий вывод в терминале, где вы запустили «jupyter notebook» ,

2017-10-05 14:51:46.335323: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Quadro K620, pci bus id: 0000:02:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0
2017-10-05 14:51:46.337418: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\direct_session.cc:265] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0

Вы можете видеть здесь, я использую TensorFlow с Nvidia Quodro K620.

wafflecat
источник
Jupyter вообще не нужен, пожалуйста, не добавляйте сложность в вопрос
Патрицио Бертони
1
Некоторые пользователи могут пожелать, чтобы графический процессор работал в Jupyter. Кроме того, это можно запустить из скрипта Python.
вафельный кот
8

Я считаю, что просто запросить GPU из командной строки:

nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.98                 Driver Version: 384.98                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 22%   33C    P8    13W / 250W |   5817MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1060      G   /usr/lib/xorg/Xorg                            53MiB |
|    0     25177      C   python                                      5751MiB |
+-----------------------------------------------------------------------------+

если ваше обучение является фоновым процессом, pid из jobs -pдолжен соответствовать pid изnvidia-smi

Тим
источник
6

Вы можете проверить, используете ли вы в данный момент графический процессор, выполнив следующий код:

import tensorflow as tf
tf.test.gpu_device_name()

Если вывод '', это означает, что вы используете CPUтолько;
Если на выходе что-то подобное /device:GPU:0, значит, GPUработает.


И используйте следующий код, чтобы проверить, какой GPUвы используете:

from tensorflow.python.client import device_lib 
device_lib.list_local_devices()
Ху Сикси
источник
Если выходной ' ', то что мы должны делать?
Джейсон
@Jason Просто переустановите версию GPU.
Ху Сикси
6

Поместите это в верхней части вашего ноутбука Jupyter. Прокомментируйте, что вам не нужно.

# confirm TensorFlow sees the GPU
from tensorflow.python.client import device_lib
assert 'GPU' in str(device_lib.list_local_devices())

# confirm Keras sees the GPU (for TensorFlow 1.X + Keras)
from keras import backend
assert len(backend.tensorflow_backend._get_available_gpus()) > 0

# confirm PyTorch sees the GPU
from torch import cuda
assert cuda.is_available()
assert cuda.device_count() > 0
print(cuda.get_device_name(cuda.current_device()))

ПРИМЕЧАНИЕ. С выпуском TensorFlow 2.0 Keras теперь включен как часть TF API.

Первоначально ответил здесь .

Пол Уильямс
источник
5

Для Tensorflow 2.0

import tensorflow as tf

tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
)

источник здесь

Другой вариант:

tf.config.experimental.list_physical_devices('GPU')
ChaosPredictor
источник
1
is_gpu_available(from tenorflow.python.framework.test_util) устарела и будет удалена в следующей версии.
Химаншу Теотия
5

ОБНОВЛЕНИЕ ДЛЯ TENSORFLOW> = 2.1.

Рекомендуемый способ проверки, использует ли TensorFlow графический процессор, следующий:

tf.config.list_physical_devices('GPU') 

Начиная с TensorFlow 2.1, tf.test.gpu_device_name()устарел в пользу вышеупомянутого.

Тембус калин
источник
3

Это строка, которую я использую для перечисления устройств, доступных tf.sessionнепосредственно из bash:

python -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'; import tensorflow as tf; sess = tf.Session(); [print(x) for x in sess.list_devices()]; print(tf.__version__);"

Он распечатает доступные устройства и версию tenorflow, например:

_DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456, 10588614393916958794)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 12320120782636586575)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 13378821206986992411)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:GPU:0, GPU, 32039954023, 12481654498215526877)
1.14.0
y.selivonchyk
источник
3

Я нашел ниже фрагмент очень удобно для тестирования GPU ..

Тест Tensorflow 2.0

import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
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 1 Test

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))
ajayramesh
источник
3

Следующее также вернет имя ваших устройств GPU.

import tensorflow as tf
tf.test.gpu_device_name()
Маз
источник
Если вывод этой команды пустая строка ... как мне отладить?
zthomas.nc
3

С tenotflow 2.0> =

import tensorflow as tf
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))

введите описание изображения здесь

leplandelaville
источник
3
>>> import tensorflow as tf 
>>> tf.config.list_physical_devices('GPU')

2020-05-10 14:58:16.243814: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-05-10 14:58:16.262675: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s
2020-05-10 14:58:16.263143: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-05-10 14:58:16.263188: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-10 14:58:16.264289: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-05-10 14:58:16.264495: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-05-10 14:58:16.265644: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-05-10 14:58:16.266329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-05-10 14:58:16.266357: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-10 14:58:16.266478: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.266823: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

По предложению @AmitaiIrron:

Этот раздел указывает, что GPU был найден

2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:

pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s

И вот, что он был добавлен в качестве доступного физического устройства

2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
bLeDy
источник
Было бы полезно, если бы вы указали на разделы в выводе, которые указывают, используется ли графический процессор.
Амитай Иррон
@AmitaiIrron Спасибо за предложение, я надеюсь, что теперь оно немного яснее.
ДЕНЬ
2

У вас есть несколько вариантов, чтобы проверить, используется ли ускорение GPU вашей установкой TensorFlow.

Вы можете ввести следующие команды на трех разных платформах.

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Блокнот Jupyter - проверьте консоль, на которой работает блокнот Jupyter. Вы сможете увидеть, как используется графический процессор.
  2. Оболочка Python - вы сможете непосредственно увидеть вывод. (Примечание: не назначайте вывод второй команды переменной 'sess'; если это помогает).
  3. Spyder - введите следующую команду в консоли.

    import tensorflow as tf tf.test.is_gpu_available()

simpleParadox
источник
2

Tensorflow 2.1

Простой расчет, который можно проверить с помощью nvidia-smi для использования памяти на GPU.

import tensorflow as tf 

c1 = []
n = 10

def matpow(M, n):
    if n < 1: #Abstract cases where n < 1
        return M
    else:
        return tf.matmul(M, matpow(M, n-1))

with tf.device('/gpu:0'):
    a = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="a")
    b = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="b")
    c1.append(matpow(a, n))
    c1.append(matpow(b, n))
cannin
источник
1

Если вы используете TensorFlow 2.0, вы можете использовать это для цикла, чтобы показать устройства:

with tf.compat.v1.Session() as sess:
  devices = sess.list_devices()
devices
Doug
источник
1

если вы используете tensflow 2.x, используйте:

sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Cheptii
источник
0

Запустите эту команду в Jupyter или в вашей IDE, чтобы проверить, использует ли Tensorflow графический процессор или нет: tf.config.list_physical_devices('GPU')

Тензин Джинсел
источник
Как этот ответ поможет с остальными ответами здесь?
ComputerScientist