# tf.debugging.assert_non_positive

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/check_ops.py#L705-L737) |

Assert the condition `x <= 0` holds element-wise.

    tf.debugging.assert_non_positive(
        x, message=None, summarize=None, name=None
    )

This Op checks that `x[i] <= 0` holds for every element of `x`. If `x` is
empty, this is trivially satisfied.

If `x` is not \<= 0 everywhere, `message`, as well as the first `summarize`
entries of `x` are printed, and `InvalidArgumentError` is raised.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `x` | Numeric `Tensor`. |
| `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_non_positive". |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Op raising `InvalidArgumentError` unless `x` is all non-positive. This can be used with [`tf.control_dependencies`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/control_dependencies) inside of [`tf.function`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/function)s to block followup computation until the check has executed. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `InvalidArgumentError` | if the check can be performed immediately and `x[i] <= 0` is False. The check can be performed immediately during eager execution or if `x` is statically known. |

<br />

<br />

## eager compatibility

<br />

returns None

<br />

<br />