Атрибут shape класса Variable
Атрибут shape класса Variable возвращает форму тензора,
хранящегося внутри переменной. Значение имеет тип
TensorShape и доступно только для чтения: изменить форму
через этот атрибут нельзя. Атрибут не принимает параметров и
вызывается как обычное свойство объекта переменной.
Форма позволяет узнать количество измерений переменной и размер каждого измерения. Это полезно при построении моделей, когда нужно согласовать размерности слоев и тензоров.
Синтаксис
v.shape
Пример
Давайте создадим переменную из одномерного тензора и выведем ее форму:
import tensorflow as tf
v = tf.Variable(tf.constant([1, 2, 3, 4, 5]))
print(v.shape)
Результат выполнения кода:
(5,)
Пример
Давайте создадим переменную из двумерного тензора и получим размеры каждого измерения по отдельности:
import tensorflow as tf
v = tf.Variable(tf.constant([[1, 2, 3], [4, 5, 6]]))
print(v.shape)
print(v.shape[0])
print(v.shape[1])
Результат выполнения кода:
(2, 3)
2
3
Пример
Давайте проверим, что атрибут возвращает объект TensorShape,
и сравним его с кортежем:
import tensorflow as tf
v = tf.Variable(tf.constant([[1, 2, 3], [4, 5, 6]]))
print(type(v.shape))
print(v.shape == (2, 3))
print(v.shape.as_list())
Результат выполнения кода:
<class 'tensorflow.python.framework.tensor_shape.TensorShape'>
True
[2, 3]
Пример
Давайте используем атрибут shape, чтобы узнать число элементов
переменной через произведение размеров измерений:
import tensorflow as tf
v = tf.Variable(tf.constant([[1, 2, 3], [4, 5, 6]]))
size = 1
for dim in v.shape:
size *= dim
print(size)
Результат выполнения кода:
6