tf.debugging.assert_none_equal
Stay organized with collections
Save and categorize content based on your preferences.
Assert the condition x != y
holds element-wise.
tf.debugging.assert_none_equal(
x, y, summarize=None, message=None, name=None
)
This Op checks that x[i] != y[i]
holds for every pair of (possibly
broadcast) elements of x
and y
. If both x
and y
are empty, this is
trivially satisfied.
If x
!= y
does not hold, message
, as well as the first summarize
entries of x
and y
are printed, and InvalidArgumentError
is raised.
When using inside tf.function
, this API takes effects during execution.
It's recommended to use this API with tf.control_dependencies
to
ensure the correct execution order.
In the following example, without tf.control_dependencies
, errors may
not be raised at all.
Check tf.control_dependencies
for more details.
def check_size(x):
with tf.control_dependencies([
tf.debugging.assert_none_equal(tf.size(x), 6,
message='Bad tensor size')]):
return x
check_size(tf.ones([2, 3], tf.float32))
Traceback (most recent call last):
InvalidArgumentError: ...
Args |
x
|
Numeric Tensor .
|
y
|
Numeric Tensor , same dtype as and broadcastable to x .
|
message
|
A string to prefix to the default message. (optional)
|
summarize
|
Print this many entries of each tensor. (optional)
|
name
|
A name for this operation (optional). Defaults to "assert_none_equal".
|
Returns |
Op that raises InvalidArgumentError if x != y is False. This can
be used with tf.control_dependencies inside of tf.function s to
block followup computation until the check has executed.
|
Raises |
InvalidArgumentError
|
if the check can be performed immediately and
x == y is False. The check can be performed immediately during eager
execution or if x and y are statically known.
|
returns None
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.
[null,null,["Last updated 2024-04-26 UTC."],[],[],null,["# tf.debugging.assert_none_equal\n\n\u003cbr /\u003e\n\n|-----------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/check_ops.py#L783-L789) |\n\nAssert the condition `x != y` holds element-wise. \n\n tf.debugging.assert_none_equal(\n x, y, summarize=None, message=None, name=None\n )\n\nThis Op checks that `x[i] != y[i]` holds for every pair of (possibly\nbroadcast) elements of `x` and `y`. If both `x` and `y` are empty, this is\ntrivially satisfied.\n\nIf `x` != `y` does not hold, `message`, as well as the first `summarize`\nentries of `x` and `y` are printed, and `InvalidArgumentError` is raised.\n\nWhen using inside [`tf.function`](../../tf/function), this API takes effects during execution.\nIt's recommended to use this API with [`tf.control_dependencies`](../../tf/control_dependencies) to\nensure the correct execution order.\n\nIn the following example, without [`tf.control_dependencies`](../../tf/control_dependencies), errors may\nnot be raised at all.\nCheck [`tf.control_dependencies`](../../tf/control_dependencies) for more details. \n\n def check_size(x):\n with tf.control_dependencies([\n tf.debugging.assert_none_equal(tf.size(x), 6,\n message='Bad tensor size')]):\n return x\n\n check_size(tf.ones([2, 3], tf.float32))\n Traceback (most recent call last):\n\n InvalidArgumentError: ...\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-------------|------------------------------------------------------------------------|\n| `x` | Numeric `Tensor`. |\n| `y` | Numeric `Tensor`, same dtype as and broadcastable to `x`. |\n| `message` | A string to prefix to the default message. (optional) |\n| `summarize` | Print this many entries of each tensor. (optional) |\n| `name` | A name for this operation (optional). Defaults to \"assert_none_equal\". |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| Op that raises `InvalidArgumentError` if `x != y` is False. This can be used with [`tf.control_dependencies`](../../tf/control_dependencies) inside of [`tf.function`](../../tf/function)s to block followup computation until the check has executed. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `InvalidArgumentError` | if the check can be performed immediately and `x == y` is False. The check can be performed immediately during eager execution or if `x` and `y` are statically known. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\neager compatibility\n-------------------\n\n\u003cbr /\u003e\n\nreturns None\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e"]]