Spec-Zone.ru › TensorFlow

tf.compat.v1.tpu.shard

Разделение на фрагменты computation для параллельного выполнения.

tf.compat.v1.tpu.shard(
    computation: Callable[..., Any],
    inputs: Optional[List[core_types.Tensor]] = None,
    num_shards: int = 1,
    input_shard_axes: Optional[List[int]] = None,
    outputs_from_all_shards: Union[bool, List[bool]] = True,
    output_shard_axes: Optional[List[int]] = None,
    infeed_queue: Optional[tpu_feed.InfeedQueue] = None,
    device_assignment: Optional[tf.tpu.experimental.DeviceAssignment] = None,
    name: Optional[Text] = None,
    xla_options: Optional[tf.tpu.XLAOptions] = None
) -> List[core_types.Tensor]

inputs должны быть списком тензоров или None (эквивалентно пустому списку), каждый из которых имеет соответствующую ось разделения (от input_shard_axes). Каждый вход разделяется на num_shards части по соответствующей оси, и вычисление применяется к каждому фрагменту параллельно.

Тензоры транслируются на все фрагменты, если они лексически захвачены computation. Например:

x = tf.constant(7) def computation(): return x + 3 ... = shard(computation, ...)

в качестве входных данных.

Если outputs_from_all_shards имеет значение true, выходные данные всех фрагментов computation конкатенируются обратно вместе по их output_shard_axes. В противном случае каждый результат берется из произвольного фрагмента.

Входные и выходные данные вычисления должны быть тензорами с рангом как минимум 1.

Аргументы
computation Функция Python, которая создает вычисление для применения к каждому фрагменту входных данных.
inputs Список входных тензоров или None (эквивалентно пустому списку). Каждый входной тензор имеет соответствующую ось фрагмента, заданную input_shard_axes, размер которой должен быть кратен num_shards.
num_shards Количество фрагментов.
input_shard_axes Список измерений, по которым следует разделить inputs, или None. None означает "разделить все входы по размеру 0". Если это не None, то должно быть одно измерение на каждый вход.
outputs_from_all_shards Логическое значение или список логических значений. Для каждого вывода, если True, выводы от всех фрагментов конкатенируются по соответствующей output_shard_axes записи. В противном случае каждый вывод берется из произвольного фрагмента. Если аргумент является логическим значением, значение аргумента используется для каждого вывода.
output_shard_axes Список измерений, по которым следует конкатенировать выводы от computation, или None. None означает "конкатенировать все выводы по размеру 0". Если это не None, то должно быть одно измерение на каждый вывод. Игнорируется, если outputs_from_all_shards равно False.
infeed_queue Если не None, то InfeedQueue для дополнения входных данных computation.
device_assignment Если не None, то DeviceAssignment, описывающая отображение логических ядер в вычислении с физическими ядрами в топологии TPU. Использует значение по умолчанию для назначения устройств, если None. DeviceAssignment может быть опущено, если каждый фрагмент вычисления использует только одно ядро, и существует либо только один фрагмент, либо число фрагментов равно числу ядер в системе TPU.
name (Устарело) Не делает ничего.
xla_options Экземпляр tpu.XLAOptions, который указывает параметры, передаваемые компилятору XLA. Используйте None для параметров по умолчанию.
Возвращаемые значения
Список выходных тензоров.
Исключения
ValueError Если num_shards <= 0
ValueError Если len(input_shard_axes) != len(inputs)
ValueError Если len(output_shard_axes) != len(выводы от computation)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/tpu/shard

Spec-Zone.ru

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