Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.debugging.assert_shapes

Проверка форм тензоров и соотношений размеров размерностей между тензорами.

tf.compat.v1.debugging.assert_shapes(
    shapes, data=None, summarize=None, message=None, name=None
)

Этот оператор проверяет, что набор соотношений форм тензоров удовлетворяет заданным ограничениям.

Пример:

n = 10
q = 3
d = 7
x = tf.zeros([n,q])
y = tf.ones([n,d])
param = tf.Variable([1.0, 2.0, 3.0])
scalar = 1.0
tf.debugging.assert_shapes([
 (x, ('N', 'Q')),
 (y, ('N', 'D')),
 (param, ('Q',)),
 (scalar, ()),
])
tf.debugging.assert_shapes([
  (x, ('N', 'D')),
  (y, ('N', 'D'))
])
Traceback (most recent call last):

ValueError: ...

Пример добавления зависимости к операции:

with tf.control_dependencies([tf.assert_shapes(shapes)]):
  output = tf.matmul(x, y, transpose_a=True)

Если x, y, param или scalar не имеют форму, которая удовлетворяет всем заданным ограничениям, message, а также первые summarize элементы первого обнаруженного нарушающего тензора будут выведены, и будет поднято исключение InvalidArgumentError.

Элементы размера в указанных формах проверяются по отношению к другим элементам по их хешу, за исключением:

  • элемент размера интерпретируется как явный размер, если его можно разобрать как целое числовое значение.
  • элемент размера интерпретируется как любой размер, если он равен None или '.'.

Если первый элемент формы равен ... (тип Ellipsis) или '*', это указывает на переменное количество внешних размерностей неопределённого размера, т.е. ограничение применяется только к внутренним размерностям.

Скалярные тензоры и указанные формы длиной ноль (исключая префикс «внутренний») оба рассматриваются как имеющие одну размерность размера один.

Аргументы
shapes Список кортежей (Tensor, shape), где shape — ожидаемая форма Tensor. См. пример кода выше. shape должен быть итерируемым. Каждый элемент итерируемого может быть либо конкретным целочисленным значением, либо строкой, абстрактно представляющей размерность. Например,
  • ('N', 'Q') задаёт двумерную форму, в которой первая и вторая размерности формы могут быть или не быть равными.
  • ('N', 'N', 'Q') задаёт трёхмерную форму, в которой первая и вторая размерности равны.
  • (1, 'N') задаёт двумерную форму, в которой первая размерность точно равна 1, а вторая размерность может принимать любое значение. Обратите внимание, что абстрактные буквенные размерности действуют для разных элементов кортежа в списке. Например, tf.debugging.assert_shapes([(x, ('N', 'A')), (y, ('N', 'B'))] утверждает, что как x, так и y являются тензорами ранга 2, и их первые размерности равны (N). shape также может быть tf.TensorShape.
data Тензоры, которые будут выведены, если условие ложно. По умолчанию — сообщение об ошибке и первые несколько элементов нарушающего тензора.
summarize Количество элементов тензора для вывода.
message Строка для добавления к стандартному сообщению.
name Имя этой операции (необязательно). По умолчанию — "assert_shapes".
Возвращаемое значение
Оператор, поднимающий InvalidArgumentError, если не все ограничения формы удовлетворены. Если статические проверки показывают, что все ограничения удовлетворены, возвращается no_op.
Исключения
ValueError Если статические проверки показывают, что какое-либо ограничение формы нарушено.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/debugging/assert_shapes

Spec-Zone.ru

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