.. _op_ai_onnx_Round: Round ===== - **Domain**: ``ai.onnx`` - **Since version**: 22 Round takes one input Tensor and rounds the values, element-wise, meaning it finds the nearest integer for each value. In case of halves, the rule is to round them to the nearest even integer. If input x is integral, +0, -0, NaN, or infinite, x itself is returned. The output tensor has the same shape and type as the input. Examples: .. code-block:: round([0.9]) = [1.0] round([2.5]) = [2.0] round([2.3]) = [2.0] round([1.5]) = [2.0] round([-4.5]) = [-4.0] **Inputs** - **X** (*T*): Input tensor **Outputs** - **Y** (*T*): Output tensor **Type Constraints** - **T**: Constrain input and output types to float tensors. Allowed types: tensor(bfloat16), tensor(double), tensor(float), tensor(float16). Examples -------- **test_cc_round** .. code-block:: text Node: Round(x) -> (y) .. code-block:: text Inputs: x: shape=(2, 3), dtype=float32 [[ 0.9, 2.5, 2.3], [ 1.5, -4.5, -2.5]] Outputs: y: shape=(2, 3), dtype=float32 [[ 1., 2., 2.], [ 2., -4., -2.]] **test_round** .. code-block:: text Node: Round(x) -> (y) .. code-block:: text Inputs: x: shape=(15,), dtype=float32 [ 0.1, 0.5, 0.9, 1.2, 1.5, 1.8, 2.3, 2.5, 2.7, -1.1, -1.5, -1.9, -2.2, -2.5, -2.8] Outputs: y: shape=(15,), dtype=float32 [ 0., 0., 1., 1., 2., 2., 2., 2., 3., -1., -2., -2., -2., -2., -3.] Differences with previous version (11) -------------------------------------- **SchemaDiff**: ``Round`` (domain ``'ai.onnx'``) * old version: 11 * new version: 22 * breaking: no **Type constraints:** * changed 'T': added types: ['tensor(bfloat16)'] Version History --------------- - :doc:`Version 11 `