tf.experimental.dtensor.relayout
Изменяет расположение tensor.
tf.experimental.dtensor.relayout(
tensor: tf.Tensor,
layout: tf.experimental.dtensor.Layout
) -> tf.Tensor
Изменяет расположение tensor на layout. Это используется для тонкой настройки поведения операций, следующих за/связанных с tensor, например, выбора одной схемы SPMD-расширения вместо другой. Это работает, передавая layout во взаимосвязанные вычислительные графы TensorFlow во время распространения расположения.
В настоящее время поддерживается только преобразование расположений из реплицированных в фрагментированные или из фрагментированных в реплицированные по размеру сетки. То есть поддерживается «x, y» -> «нефрагментированное, y», но не «x, y» -> «z, y».
Мы также поддерживаем специальную схему фрагментации «match», которая инструктирует relayout действовать как операция тождества относительно любой фрагментации по этим измерениям сетки.
Relayout внутренне понижается до набора операций Split и/или AllToAll. Когда расположения тензоров преобразуются из реплицированных в фрагментированные, стоимость сравнительно низка, так как мы вставляем только операции Split, и межпроцессорное взаимодействие не требуется. Однако, когда расположения тензоров преобразуются из фрагментированных в реплицированные, может произойти межпроцессорное взаимодействие, что может вызвать потенциальное снижение производительности.
| Аргументы | |
|---|---|
tensor | DTensor для задания нового расположения. |
layout | Объект Layout, определяющий новую схему фрагментации. |
| Возвращаемое значение | |
|---|---|
| DTensor выходной из операции Relayout. |
© 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/versions/r2.9/api_docs/python/tf/experimental/dtensor/relayout