Функция config.list_logical_devices
Функция config.list_logical_devices возвращает список
логических устройств, которые TensorFlow видит в текущем
процессе. Логические устройства формируются на основе
физических устройств с учетом настроек видимости, заданных
через config.set_visible_devices, а также с учетом
виртуальных устройств, созданных через
experimental.set_virtual_device_configuration.
Первым необязательным параметром передается строка с типом
устройства, например 'GPU' или 'CPU'. Если
параметр не указан, функция возвращает все логические
устройства. Вторым необязательным параметром передается
строка с именем устройства. Функция возвращает список
объектов LogicalDevice.
Синтаксис
tf.config.list_logical_devices(device_type=None, device_name=None)
Пример
Давайте получим список всех логических устройств, доступных в текущем процессе:
import tensorflow as tf
devices = tf.config.list_logical_devices()
print(devices)
Результат выполнения кода:
[LogicalDevice(name='/device:CPU:0', device_type='CPU')]
Пример
Давайте отфильтруем логические устройства по типу 'CPU':
import tensorflow as tf
devices = tf.config.list_logical_devices('CPU')
for device in devices:
print(device.name, device.device_type)
Результат выполнения кода:
"/device:CPU:0 CPU"
Пример
Давайте создадим виртуальные CPU-устройства и посмотрим, как изменится список логических устройств:
import tensorflow as tf
physical_devices = tf.config.list_physical_devices('CPU')
tf.config.set_visible_devices(physical_devices[0], 'CPU')
tf.config.experimental.set_virtual_device_configuration(
physical_devices[0],
[tf.config.experimental.VirtualDeviceConfiguration(),
tf.config.experimental.VirtualDeviceConfiguration()]
)
logical_devices = tf.config.list_logical_devices('CPU')
for device in logical_devices:
print(device.name)
Результат выполнения кода:
"/device:CPU:0"
"/device:CPU:1"
Пример
Давайте разместим тензор на первом логическом устройстве и проверим его устройство:
import tensorflow as tf
logical_devices = tf.config.list_logical_devices('CPU')
with tf.device(logical_devices[0].name):
t = tf.constant([1, 2, 3, 4, 5])
print(t.device)
Результат выполнения кода:
"/job:localhost/replica:0/task:0/device:CPU:0"
Смотрите также
-
функцию
config.list_physical_devices,
которая возвращает список физических устройств -
функцию
config.set_visible_devices,
которая задает видимые устройства для процесса -
функцию
config.get_visible_devices,
которая возвращает список видимых устройств -
функцию
experimental.set_virtual_device_configuration,
которая создает виртуальные устройства