tf.compat.v1.assert_none_equal
Утверждение, что условие x != y выполняется поэлементно.
tf.compat.v1.assert_none_equal(
x, y, data=None, summarize=None, message=None, name=None
)
Переход на TF2
tf.compat.v1.assert_none_equal совместим с выполнением в режиме eager и tf.function. При миграции на TF2 используйте tf.debugging.assert_none_equal вместо него. Помимо data, все аргументы поддерживаются с тем же именем аргумента.
Если вы хотите убедиться, что операторы assert выполняются до потенциально некорректного вычисления, используйте tf.control_dependencies, так как автоматические зависимости контроля tf.function недостаточны для операторов assert.
Структурное отображение на родной TF2
До:
tf.compat.v1.assert_none_equal( x=x, y=y, data=data, summarize=summarize, message=message, name=name)
После:
tf.debugging.assert_none_equal( x=x, y=y, message=message, summarize=summarize, name=name)
Пример использования TF1 и TF2
TF1:
g = tf.Graph()
with g.as_default():
a = tf.compat.v1.placeholder(tf.float32, [2])
b = tf.compat.v1.placeholder(tf.float32, [2])
result = tf.compat.v1.assert_none_equal(a, b,
message='"a != b" does not hold for the given inputs')
with tf.compat.v1.control_dependencies([result]):
sum_node = a + b
sess = tf.compat.v1.Session(graph=g)
val = sess.run(sum_node, feed_dict={a: [1, 2], b:[2, 1]})
TF2:
a = tf.Variable([1, 2], dtype=tf.float32) b = tf.Variable([2, 1], dtype=tf.float32) assert_op = tf.debugging.assert_none_equal(a, b, message= '"a != b" does not hold for the given inputs') # When working with tf.control_dependencies with tf.control_dependencies([assert_op]): val = a + b
Описание
Это условие выполняется, если для каждой пары (возможно, транслируемых) элементов x[i], y[i], у нас есть x[i] != y[i]. Если оба x и y пустые, это условие выполняется тривиально.
При выполнении в режиме графа вам следует добавить зависимость от этой операции, чтобы гарантировать ее выполнение. Пример добавления зависимости к операции:
with tf.control_dependencies([tf.compat.v1.assert_none_equal(x, y)]): output = tf.reduce_sum(x)
| Аргументы | |
|---|---|
x | Числовые Tensor. |
y | Числовые Tensor, того же типа и транслируемые к x. |
data | Тензоры для вывода, если условие ложно. По умолчанию — сообщение об ошибке и первые несколько элементов x, y. |
summarize | Количество элементов каждого тензора для вывода. |
message | Строка-префикс к сообщению по умолчанию. |
name | Имя этой операции (необязательно). По умолчанию — "assert_none_equal". |
| Возвращаемое значение | |
|---|---|
Операция, которая вызывает InvalidArgumentError если x != y ложно. |
| Возможные исключения | |
|---|---|
InvalidArgumentError | если проверка может быть выполнена немедленно, и x != y ложно. Проверка может быть выполнена немедленно во время выполнения eager или если x и y статически известны. |
© 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/compat/v1/assert_none_equal