View source on GitHub |
Assert the condition x
and y
are close element-wise.
tf.compat.v1.assert_near(
x, y, rtol=None, atol=None, data=None, summarize=None, message=None, name=None
)
Example of adding a dependency to an operation:
with tf.control_dependencies([tf.compat.v1.assert_near(x, y)]):
output = tf.reduce_sum(x)
This condition holds if for every pair of (possibly broadcast) elements
x[i]
, y[i]
, we have
tf.abs(x[i] - y[i]) <= atol + rtol * tf.abs(y[i])
.
If both x
and y
are empty, this is trivially satisfied.
The default atol
and rtol
is 10 * eps
, where eps
is the smallest
representable positive number such that 1 + eps != 1
. This is about
1.2e-6
in 32bit
, 2.22e-15
in 64bit
, and 0.00977
in 16bit
.
See numpy.finfo
.
Args | |
---|---|
x
|
Float or complex Tensor .
|
y
|
Float or complex Tensor , same dtype as, and broadcastable to, x .
|
rtol
|
Tensor . Same dtype as, and broadcastable to, x .
The relative tolerance. Default is 10 * eps .
|
atol
|
Tensor . Same dtype as, and broadcastable to, x .
The absolute tolerance. Default is 10 * eps .
|
data
|
The tensors to print out if the condition is False. Defaults to
error message and first few entries of x , y .
|
summarize
|
Print this many entries of each tensor. |
message
|
A string to prefix to the default message. |
name
|
A name for this operation (optional). Defaults to "assert_near". |
Returns | |
---|---|
Op that raises InvalidArgumentError if x and y are not close enough.
|
Numpy Compatibility
Similar to numpy.testing.assert_allclose
, except tolerance depends on data
type. This is due to the fact that TensorFlow
is often used with 32bit
,
64bit
, and even 16bit
data.