Spec-Zone.ru › TensorFlow 1.15

tf.DeviceSpec

Просмотреть исходный код на GitHub

Представляет собой (возможно, частичное) описание устройства TensorFlow.

Наследуется от: DeviceSpec

Просмотр псевдонимов

Псевдонимы для миграции

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.DeviceSpec

tf.DeviceSpec(
    job=None, replica=None, task=None, device_type=None, device_index=None
)

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

Пример:

# Place the operations on device "GPU:0" in the "ps" job.
device_spec = DeviceSpec(job="ps", device_type="GPU", device_index=0)
with tf.device(device_spec):
  # Both my_var and squared_var will be placed on /job:ps/device:GPU:0.
  my_var = tf.Variable(..., name="my_variable")
  squared_var = tf.square(my_var)

Если DeviceSpec частично указано, оно будет объединено с другими DeviceSpec в соответствии с областью, в которой оно определено. DeviceSpec компоненты, определенные во внутренних областях, имеют приоритет над теми, которые определены во внешних областях.

with tf.device(DeviceSpec(job="train", )):
  with tf.device(DeviceSpec(job="ps", device_type="GPU", device_index=0):
    # Nodes created here will be assigned to /job:ps/device:GPU:0.
  with tf.device(DeviceSpec(device_type="GPU", device_index=1):
    # Nodes created here will be assigned to /job:train/device:GPU:1.

DeviceSpec состоит из 5 компонентов — каждый из которых необязательно указан:

  • Job: Имя задания.
  • Replica: Индекс реплики.
  • Task: Индекс задачи.
  • Тип устройства: Строка типа устройства (например, "CPU" или "GPU").
  • Индекс устройства: Индекс устройства.
Args
job строка. Необязательное имя задания.
replica целое число. Необязательный индекс реплики.
task целое число. Необязательный индекс задачи.
device_type Необязательная строка типа устройства (например, "CPU" или "GPU")
device_index целое число. Необязательный индекс устройства. Если не указано, устройство представляет собой 'любой' device_index.
Атрибуты
device_index
device_type
job
replica
task

Методы

from_string

Просмотреть исходный код

@classmethod
from_string(
    spec
)

Создать DeviceSpec из строки.

Args
spec строка вида /job:/replica:/task:/device:CPU: или /job:/replica:/task:/device:GPU:, где cpu и gpu взаимно исключают друг друга. Все записи необязательны.
Возвращает
Объект DeviceSpec.

make_merged_spec

Просмотреть исходный код

make_merged_spec(
    dev
)

Возвращает новый DeviceSpec, который включает dev.

При объединении спецификаций dev будет иметь приоритет над текущей спецификацией. Например:

first_spec = tf.DeviceSpec(job=0, device_type="CPU")
second_spec = tf.DeviceSpec(device_type="GPU")
combined_spec = first_spec.make_merged_spec(second_spec)

эквивалентно:

combined_spec = tf.DeviceSpec(job=0, device_type="GPU")
Args
dev DeviceSpec
Возвращает
Новый DeviceSpec, который объединяет self и dev

merge_from

Просмотреть исходный код

merge_from(
    dev
)

Объединить свойства "dev" в этот DeviceSpec.

Примечание: Будет удалено в TensorFlow 2.x, так как DeviceSpecs станут неизменяемыми.
Args
dev DeviceSpec.

parse_from_string

Просмотреть исходный код

parse_from_string(
    spec
)

Разбор имени DeviceSpec в его компоненты.

Изменение поведения в 2.x: В TensorFlow 1.x эта функция изменяет собственное состояние и возвращает себя. В 2.x DeviceSpecs являются неизменяемыми, и эта функция вернет DeviceSpec, содержащий спецификацию.

Рекомендовано:

# my_spec and my_updated_spec are unrelated.
my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_updated_spec = tf.DeviceSpec.from_string("/GPU:0")
with tf.device(my_updated_spec):
  ...

Будет работать в 1.x и 2.x (хотя устарело в 2.x):

my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_updated_spec = my_spec.parse_from_string("/GPU:0")
with tf.device(my_updated_spec):
  ...

НЕ будет работать в 2.x:

my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_spec.parse_from_string("/GPU:0")  # <== Will not update my_spec
with tf.device(my_spec):
  ...

В общем случае, DeviceSpec.from_string должен полностью заменить DeviceSpec.parse_from_string, а DeviceSpec.replace должен полностью заменить непосредственное задание атрибутов.

Args
spec необязательная строка вида /job:/replica:/task:/device:CPU: или /job:/replica:/task:/device:GPU:, где cpu и gpu взаимно исключают друг друга. Все записи необязательны.
Возвращает
DeviceSpec.
Возможные ошибки
ValueError если спецификация была некорректной.

replace

Просмотреть исходный код

replace(
    **kwargs
)

Удобный метод для создания нового DeviceSpec, перезаписывая поля.

Например:

my_spec = DeviceSpec=(job="my_job", device="CPU")
my_updated_spec = my_spec.replace(device="GPU")
my_other_spec = my_spec.replace(device=None)
Args
**kwargs Этот метод принимает те же аргументы, что и конструктор DeviceSpec
Возвращает
DeviceSpec с полями, указанными в kwargs, переопределёнными.

to_string

Просмотреть исходный код

to_string()

Возвращает строковое представление этого DeviceSpec.

Возвращает
строка вида /job:/replica:/task:/device::.

__eq__

Просмотреть исходный код

__eq__(
    other
)

Проверяет, является ли DeviceSpec other таким же, как текущий экземпляр, т.е. имеет

одинаковое значение для всех внутренних полей.

Args
other Другой DeviceSpec
Возвращает
Вернуть True если other также является экземпляром DeviceSpec и имеет то же значение, что и текущий экземпляр. Вернуть False в противном случае.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/DeviceSpec

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API