tf.shape
| Просмотреть исходный код на GitHub |
Возвращает тензор, содержащий форму входного тензора.
tf.shape(
input,
out_type=tf.dtypes.int32,
name=None
)
tf.shape возвращает 1-мерный целочисленный тензор, представляющий форму input. Для скалярного входного значения возвращаемый тензор имеет форму (0,) и его значение — пустой вектор (т.е. []).
Например:
tf.shape(1.) <tf.Tensor: shape=(0,), dtype=int32, numpy=array([], dtype=int32)>
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]) tf.shape(t) <tf.Tensor: shape=(3,), dtype=int32, numpy=array([2, 2, 3], dtype=int32)>
Примечание: При использовании символических тензоров, например, при использовании API Keras, tf.shape() вернёт форму символического тензора.
a = tf.keras.layers.Input((None, 10)) tf.shape(a) <... shape=(3,) dtype=int32...>
В этих случаях, использование tf.Tensor.shape вернёт более информативные результаты.
a.shape TensorShape([None, None, 10])
(Первое None представляет пока неизвестный размер пакета.)
tf.shape и Tensor.shape должны быть идентичны в режиме eager. Внутри tf.function или в контексте compat.v1 не все измерения могут быть известны до времени выполнения. Поэтому при определении пользовательских слоёв и моделей для режима графа предпочитайте динамическое tf.shape(x) статическому x.shape.
| Аргументы | |
|---|---|
input | Tensor или SparseTensor. |
out_type | (Необязательно) Указанный тип данных результата операции (int32 или int64). По умолчанию tf.int32. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor типа out_type. |
© 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/shape