Как определить, использует ли 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"]


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

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


Это также работает с 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

5
Пожалуйста, добавьте небольшое объяснение, почему ваш ответ работает (что делает log_device_placementи как увидеть CPU и GPU в выводе?). Это улучшит качество вашего ответа!
— Нандер Спирстра

25

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

import tensorflow as tf
print(tf.test.is_built_with_cuda())

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 Вы можете продолжить просматривать эту статистику во время выполнения кода, чтобы увидеть, насколько интенсивно использование графического процессора со временем.


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)

человек, которого я отклонил твой вопрос по ошибке ... если ты отредактируешь свой вопрос, я отменю свое отрицательное голосование
— 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.


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

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

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

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

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


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

Было бы полезно, если бы вы указали на разделы в выводе, которые указывают, используется ли графический процессор.
— Амитай Иррон

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


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

1

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

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

1

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

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

0

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


Как этот ответ поможет с остальными ответами здесь?
— ComputerScientist
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.