TensorFlow2: выход Logging_device_placement - PullRequest
0 голосов
/ 09 марта 2020

Для того, чтобы гарантировать, что тензор потока 2 использует gpu, я хотел бы положиться на Logging_device_placement ([официальная документация] [1]). Я не понимаю его поведение, хотя. Я использую консоль spyder 4.0.1 i python из виртуальной среды: (установка pip python 3.7.0 и тензор-gpu 2.1.0)

Это код, который я запускаю

import tensorflow as tf
tf.debugging.set_log_device_placement(True)

print("\n\nNum GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

with tf.device('/GPU:0'):
 a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
 b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
 c = tf.matmul(a, b)
 print(c)

При первом запуске кода я получаю ожидаемый результат

Num GPUs Available:  1
Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0
tf.Tensor(
[[22. 28.]
 [49. 64.]], shape=(2, 2), dtype=float32)

Во второй раз, когда я запускаю его, больше нет журнала (Выполнение op MatMul на устройстве / задании: localhost / Реплика: 0 / задача: 0 / устройство: GPU: 0 отсутствует)

Num GPUs Available:  1
tf.Tensor(
[[22. 28.]
 [49. 64.]], shape=(2, 2), dtype=float32)

Есть идеи, чтобы выводить устройство журнала для каждого отдельного вызова?

Конфигурация: IDE: Spyder 4.0.1 Python 3.7.0 Tensorflow-gpu 2.0.1

Ссылки: [1]: https://www.tensorflow.org/guide/gpu

...