Як сказати, чи використовує tensorflow прискорення gpu з внутрішньої оболонки пітона?


303

Я встановив tensorflow в моєму ubuntu 16.04, використовуючи другий відповідь тут, з вбудованою правильною установкою apdu ubuntu .

Тепер моє запитання - як я можу перевірити, чи дійсно tensorflow використовує 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

Чи достатньо цього виводу, щоб перевірити, чи tensorflow використовує gpu?


1
Ви повинні побачити щось подібне у своєму журналі: I tensorflow / 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/isissue/…
Ярослав Булатов

Так, я отримав цей результат після відповіді Яо Чжана ...
Тамім Аддарі

@YaroslavBulatov в якому журналі? Чи записує це у файл чи де я можу перевірити, чи з’являється такий твердження?
Чарлі Паркер

1
Це пише stdout або stderr
Ярослав Булатов

Відповіді:


290

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

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

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

Перевірте консоль на такий тип виводу.


17
Я спробував це, і він друкує абсолютно нічого. Будь-яка ідея, чому це може бути?
Qubix

8
Ви робили це на зошиті з юпітером?
Тамім Аддарі

27
Вихід може бути зроблений на консолі, з якої ви запустили ноутбук Юпітера.
musically_ut

18
Чи можемо ми отримати оновлену відповідь для Tensorflow V2 (де tf.Sessions не підтримується).
iyop45

6
@ iyop45 Для tensorflow V2 команда трохи змінена:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Vandan

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": GPU вашого комп'ютера, якщо у вас є.

Якщо у вас є gpu і можете його використовувати, ви побачите результат. Інакше ви побачите помилку з довгим стеком. Зрештою у вас вийде щось подібне:

Неможливо призначити пристрій вузлу "MatMul": Не вдалося задовольнити явну специфікацію пристрою "/ пристрій: 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
@GeorgePligor результат тут не дуже важливий. Або у вас є результат, і GPU був використаний, або ви маєте помилку, це означає, що він не використовувався
Сальвадор Далі

1
Це для мене не вийшло. Я запустив це все в мій контейнер Docker, який виконується nvidia-docker та etcetc. Однак я не помиляюсь, і це працює цей процесор. Я трохи збільшив матриці (10 к * 10 к), щоб забезпечити її обчислення на деякий час. Утиліти процесора піднялися на 100%, але GPU залишався крутим, як завжди.
pascalwhoop

Під час запуску в консолі я отримав помилку "немає пристроїв, що відповідають". У IDE, як піхарма, помилок немає. Я думаю, що це пов'язано з використовуваним сеансом, який відрізняється консоллю.
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

Наступний фрагмент коду повинен дати вам усі пристрої, доступні tensorflow.

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

Вибірка зразка

[ім'я: "/ cpu: 0" type_type: "CPU" memory_limit: 268435456 місцевість {} втілення: 4402277519343584096,

name: "/ gpu: 0" type_type: "GPU" memory_limit: 6772842168 місцевість {bus_id: 1} втілення: 7471795903849088328 Physical_device_desc: "Пристрій: 0, ім'я: GeForce GTX 1070, ідентифікатор шини pci: 0000: 05: 00.0"]


9
Це найкраща відповідь.
lolski

3
і якщо ця команда не повертає жодного запису з "GPU", чи означає це, що моя машина просто має GPU, або tensorflow не може її знайти?
mercury0114

@ mercury0114 це може бути будь-який. наприклад, у вас може бути gpu, але неправильно встановлений tensorflow-gpu.
jimijazz

4
Я не погоджуюся, це не відповідає на запитання: мова йде не про наявні пристрої, а про пристрої, що використовуються . І це може бути зовсім інша історія! (наприклад, TF використовуватиме лише 1 GPU за замовчуванням.
Mayou36,

name: "/ device: GPU: 0" type_type: "GPU" memory_limit: 10711446324 місцевість {bus_id: 1 посилання {}} втілення: 17935632445266485019 Physical_device_desc: "Пристрій: 0, ім'я: GeForce RTX 2080 Ti, ідентифікатор шини pci: 0000: 01: 00,0, можливість обчислення: 7,5 "]
kamran kausar

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

Мені це здається легше, ніж ті багатослівні журнали.


Домовились. Простіше, ніж описані вище підходи. Друкує список використовуваних графічних процесорів. Дякую
користувач907629

2
Найкращий дивовижний з усіх
echan00

Це недійсний тест. Він повернеться до оператора else, навіть якщо у вас встановлена ​​версія GPU tensorflow.
Годдард

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 заявляють, що це має працювати: tensorflow.org/api_docs/python/tf/config/experimental/… , і я можу перевірити, чи працює він для мене.
Рой Шилкрот

29

Це підтвердить, що tensorflow використовує 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і як бачити процесор проти GPU у висновку?). Це покращить якість вашої відповіді!
Nander Speerstra

25

На додаток до інших відповідей, наступне має допомогти вам переконатися, що ваша версія tensorflow включає підтримку GPU.

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

7
Попередження: Це говорить про те, чи TensorFlow компілюється з GPU. Чи не використовується GPU. (Якщо драйвери, наприклад, не встановлені належним чином, використовується CPU, навіть якщо "is_built_with_cuda ()" відповідає дійсності.)
Ricardo Cruz

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 Мб); Іноді споживання пам’яті GPU навіть може становити 0 Мб.


Тепер завантажимо GPU у наш код. Як зазначено в tf documentation, зробіть:

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

Тепер статистика годинника повинна відображати оновлену пам'ять використання графічного процесора, як показано нижче:

tf gpu-дивитися

Слідкуйте за тим, як наш процес Python із оболонки ipython використовує ~ 7 ГБ пам'яті GPU.


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


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)

людина, я помилково поставив ваше запитання ... якщо ви відредагуєте своє запитання, я скасую свою анкету
Франческо Бой

14

Я вважаю за краще використовувати nvidia-smi для моніторингу використання GPU. якщо він піднімається значно під час запуску програми, це сильний знак того, що ваш tensorflow використовує GPU.


Це непрямий спосіб
papabiceps

Як ви використовуєте nvdia-smi для моніторингу використання GPU?
Разін

після встановлення куди. nvidia-smi має бути у вашій системі. Зазвичай я використовую 'nvidia-smi -l' для моніторингу використання.
scott huang

3
Ви також можете використовувати годинник nvidia-smi, оновляючи екран кожні 2 секунди
Персей14,

дивіться, що 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

Виконайте наступне в Юпітері,

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

Якщо ви правильно налаштували своє середовище, ви отримаєте наступний висновок у терміналі, де ви запустили "ноутбук з юпітером" ,

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.


Юпітеру зовсім не потрібно, будь ласка, не додайте складності до питання
Патрісіо Бертоні

1
Деякі користувачі можуть переконатися, що GPU можна використовувати в Jupyter. Крім того, це може бути запущено із сценарію Python.
wafflecat

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

якщо ваше навчання є фоновим процесом, то від нього jobs -pслід відповідати pidnvidia-smi


6

Ви можете перевірити, чи використовуєте ви зараз GPU, виконавши наступний код:

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

Помістіть це біля верхньої частини зошита з юпітером. Прокоментуйте те, що вам не потрібно.

# 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 тепер включений до складу API TF.

Оригінально відповіли тут .


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(від tensorflow.python.framework.test_util) застаріло і буде видалено в наступній версії.
Хіманшу Теотія

5

ОНОВЛЕННЯ ДЛЯ ТЕНЗОРФЛУ> = 2.1.

Рекомендований спосіб перевірити, чи використовує TensorFlow GPU, такий:

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__);"

Він надрукує доступні пристрої та тензорну версію, наприклад:

_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 Тест

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

З tensotflow 2.0> =

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

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


2

У вас є кілька варіантів, щоб перевірити, чи використовується прискорення GPU для вашої установки TensorFlow.

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

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook - Перевірте консоль, на якій працює Jupyter Notebook. Ви зможете побачити, як використовується GPU.
  2. Python Shell - Ви зможете безпосередньо бачити вихід. (Примітка - не призначайте вихід другої команди змінній "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))

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

Було б корисно, якщо ви вкажете на розділи у висновку, які вказують, чи використовується GPU.
Амітай Іррон

@AmitaiIrron Дякую за пропозицію, я сподіваюся, що це трохи зрозуміліше зараз.
bLeDy

1

Якщо ви використовуєте TensorFlow 2.0, ви можете використовувати це для циклу для показу пристроїв:

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

1

якщо ви використовуєте tensorflow 2.x використання:

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

0

Запустіть цю команду в Jupyter або IDE, щоб перевірити, чи Tensorflow використовує GPU чи ні: tf.config.list_physical_devices('GPU')


Як ця відповідь допомагає з рештою відповідей тут?
ComputerScientist
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.