# tf.debugging.assert_rank_in

<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#L1328-L1358) |

Assert that `x` has a rank in `ranks`.

    tf.debugging.assert_rank_in(
        x, ranks, message=None, name=None
    )

This Op checks that the rank of `x` is in `ranks`.

If `x` has a different rank, `message`, as well as the shape of `x` are
printed, and `InvalidArgumentError` is raised.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `x` | `Tensor`. |
| `ranks` | `Iterable` of scalar `Tensor` objects. |
| `message` | A string to prefix to the default message. |
| `name` | A name for this operation (optional). Defaults to "assert_rank_in". |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Op raising `InvalidArgumentError` unless rank of `x` is in `ranks`. If static checks determine `x` has matching rank, a `no_op` is returned. 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` | `x` does not have rank in `ranks`, but the rank cannot be statically determined. |
| `ValueError` | If static checks determine `x` has mismatched rank. |

<br />

<br />

## eager compatibility

<br />

returns None

<br />

<br />