:nosearch: .. _op_ai_onnx_Clip-12: Clip - version 12 ================= This page documents version **12** of operator **Clip**. See :doc:`Clip` for the latest version (since version 13). - **Domain**: ``ai.onnx`` - **Since version**: 12 Clip operator limits the given input within an interval. The interval is specified by the inputs 'min' and 'max'. They default to numeric_limits::lowest() and numeric_limits::max(), respectively. **Inputs** - **input** (*T*): Input tensor whose elements to be clipped - **min** (*T*): Minimum value, under which element is replaced by min. It must be a scalar(tensor of empty shape). - **max** (*T*): Maximum value, above which element is replaced by max. It must be a scalar(tensor of empty shape). **Outputs** - **output** (*T*): Output tensor with clipped input elements **Type Constraints** - **T**: Constrain input and output types to all numeric tensors. Allowed types: tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8). Examples -------- **test_clip_default_int8_inbounds** .. code-block:: text Node: Clip(x) -> (y) .. code-block:: text Inputs: x: shape=(3,), dtype=int8 [-1, 0, 1] Outputs: y: shape=(3,), dtype=int8 [-1, 0, 1] **test_clip_default_int8_max** .. code-block:: text Node: Clip(x, "", max) -> (y) .. code-block:: text Inputs: x: shape=(3, 4, 5), dtype=int8 [[[ 0, 1, 0, 0, 0], [ 0, -2, 1, 0, 0], [ 0, 0, -1, 0, 1], [ 1, 0, 0, 1, 0]], [[ 1, -1, 0, 0, 0], [-1, 0, -1, 0, -1], [ 0, 0, -1, -2, 0], [ 1, 0, -1, 0, -1]], [[-2, -1, 0, 0, 1], [ 0, 1, 0, 1, 0], [ 0, 1, -1, 0, -1], [ 0, 1, -1, -1, 0]]] max: shape=(), dtype=int8 0 Outputs: y: shape=(3, 4, 5), dtype=int8 [[[ 0, 0, 0, 0, 0], [ 0, -2, 0, 0, 0], [ 0, 0, -1, 0, 0], [ 0, 0, 0, 0, 0]], [[ 0, -1, 0, 0, 0], [-1, 0, -1, 0, -1], [ 0, 0, -1, -2, 0], [ 0, 0, -1, 0, -1]], [[-2, -1, 0, 0, 0], [ 0, 0, 0, 0, 0], [ 0, 0, -1, 0, -1], [ 0, 0, -1, -1, 0]]] **test_clip_default_int8_min** .. code-block:: text Node: Clip(x, min) -> (y) .. code-block:: text Inputs: x: shape=(3, 4, 5), dtype=int8 [[[ 1, 0, 1, 0, 0], [-1, 0, 0, 0, 0], [-1, 0, 0, 0, 1], [ 0, -2, 0, 0, 0]], [[ 0, 1, 1, 0, 0], [ 0, 0, 1, 0, 0], [ 0, 0, -1, 0, 1], [ 0, 1, -1, 0, 1]], [[ 1, 0, 0, 1, 0], [ 0, 0, -1, 1, 1], [ 0, -2, 0, 0, 0], [ 0, 0, 1, 1, 0]]] min: shape=(), dtype=int8 0 Outputs: y: shape=(3, 4, 5), dtype=int8 [[[1, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]], [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 1], [0, 1, 0, 0, 1]], [[1, 0, 0, 1, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, 0, 1, 1, 0]]] Differences with previous version (11) -------------------------------------- **SchemaDiff**: ``Clip`` (domain ``'ai.onnx'``) * old version: 11 * new version: 12 * breaking: no **Type constraints:** * changed 'T': added types: ['tensor(int16)', 'tensor(int32)', 'tensor(int64)', 'tensor(int8)', 'tensor(uint16)', 'tensor(uint32)', 'tensor(uint64)', 'tensor(uint8)']