Spec-Zone.ru › TensorFlow

tf.compat.v1.assert_none_equal

Утверждает, что условие x != y выполняется для каждого элемента.

Просмотреть псевдонимы

Псевдонимы для совместимости при миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.debugging.assert_none_equal

tf.compat.v1.assert_none_equal(
    x, y, data=None, summarize=None, message=None, name=None
)

Миграция на TF2

Внимание: Этот API разработан для TensorFlow v1. Читайте далее, чтобы узнать, как перейти с этого API на соответствующий встроенный API TensorFlow v2. Инструкции по миграции остальной части кода см. в руководстве по миграции с TensorFlow v1 на TensorFlow v2.

tf.compat.v1.assert_none_equal совместима с eager-выполнением и tf.function. При миграции на TF2 вместо неё используйте tf.debugging.assert_none_equal. За исключением data, поддерживаются все аргументы с теми же именами.

Если нужно гарантировать, что инструкции assert выполнятся до потенциально недопустимого вычисления, используйте tf.control_dependencies, поскольку автоматических зависимостей управления tf.function недостаточно для инструкций assert.

Структурное соответствие встроенным API 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/api_docs/python/tf/compat/v1/assert_none_equal

Spec-Zone.ru

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