tf.broadcast_to
Транслирует массив в совместимую форму.
tf.broadcast_to(
input: Annotated[Any, TV_BroadcastTo_T],
shape: Annotated[Any, TV_BroadcastTo_Tidx],
name=None
) -> Annotated[Any, TV_BroadcastTo_T]
Используется в ноутбуках
| Используется в руководстве | Используется в учебных материалах |
|---|---|
Широковещание — это процесс приведения массивов к совместимым формам для выполнения арифметических операций. Две формы совместимы, если для каждой пары измерений они равны или одно из них равно единице.
Например:
x = tf.constant([[1, 2, 3]]) # Shape (1, 3,)
y = tf.broadcast_to(x, [2, 3])
print(y)
tf.Tensor(
[[1 2 3]
[1 2 3]], shape=(2, 3), dtype=int32)В приведенном выше примере входной тензор с формой [1, 3] транслируется в выходной тензор с формой [2, 3].
При широковещании, если у тензора меньше осей, чем требуется, его форма дополняется единицами слева. Поэтому результат будет таким же, как в предыдущем примере:
x = tf.constant([1, 2, 3]) # Shape (3,) y = tf.broadcast_to(x, [2, 3])
При выполнении операций с широковещанием, например умножении тензора на скаляр, широковещание (как правило) позволяет сэкономить время или память, поскольку транслируемый тензор не создается в памяти.
Однако broadcast_to не дает таких преимуществ. Созданный тензор занимает всю память, необходимую для транслируемой формы. (Однако в контексте графа broadcast_to может быть объединен со следующей операцией, после чего оптимизатор сможет его удалить.)
| Аргументы | |
|---|---|
input | Объект Tensor. Тензор для широковещания. |
shape | Объект Tensor. Должен иметь один из следующих типов: int32, int64. Одномерный тензор int. Форма требуемого выходного тензора. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Объект Tensor. Имеет тот же тип, что и input. |
© 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/broadcast_to