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 должно быть итерируемым объектом. Каждый элемент итерируемого объекта может быть либо конкретным целочисленным значением, либо строкой, абстрактно представляющей измерение. Например,
|
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.3/api_docs/python/tf/compat/v1/debugging/assert_shapes