tf.debugging.assert_near

View source

Assert the condition x and y are close element-wise.

Aliases:

  • tf.compat.v2.debugging.assert_near
tf.debugging.assert_near(
    x,
    y,
    rtol=None,
    atol=None,
    message=None,
    summarize=None,
    name=None
)

This Op checks that x[i] - y[i] < atol + rtol * tf.abs(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 any elements of x and y are not close, message, as well as the first summarize entries of x and y are printed, and InvalidArgumentError is raised.

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.
  • message: A string to prefix to the default message.
  • summarize: Print this many entries of each tensor.
  • name: A name for this operation (optional). Defaults to "assert_near".

Returns:

Op that raises InvalidArgumentError if x and y are not close enough. This can be used with tf.control_dependencies inside of tf.functions to block followup computation until the check has executed.

Raises:

  • InvalidArgumentError: if the check can be performed immediately and x != y is False for any pair of elements in x and y. The check can be performed immediately during eager execution or if x and y are statically known.

Eager Compatibility

returns None

Numpy Compatibility

Similar to numpy.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.

results matching ""

    No results matching ""