(l-onnx-doc-Min)= # Min (l-onnx-op-min-13)= ## Min - 13 ### Version - **name**: [Min (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Min) - **domain**: `main` - **since_version**: `13` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 13**. ### Summary Element-wise min of each of the input tensors (with Numpy-style broadcasting support). All inputs and outputs must have the same data type. This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [Broadcasting in ONNX](https://github.com/onnx/onnx/blob/main/docs/Broadcasting.md). ### Inputs Between 1 and 2147483647 inputs. - **data_0** (variadic, heterogeneous) - **T**: List of tensors for min. ### Outputs - **min** (heterogeneous) - **T**: Output tensor. ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to numeric tensors. ### Examples #### default ```python import numpy as np import onnx data_0 = np.array([3, 2, 1]).astype(np.float32) data_1 = np.array([1, 4, 4]).astype(np.float32) data_2 = np.array([2, 5, 0]).astype(np.float32) result = np.array([1, 2, 0]).astype(np.float32) node = onnx.helper.make_node( "Min", inputs=["data_0", "data_1", "data_2"], outputs=["result"], ) expect( node, inputs=[data_0, data_1, data_2], outputs=[result], name="test_min_example", ) node = onnx.helper.make_node( "Min", inputs=["data_0"], outputs=["result"], ) expect(node, inputs=[data_0], outputs=[data_0], name="test_min_one_input") result = np.minimum(data_0, data_1) node = onnx.helper.make_node( "Min", inputs=["data_0", "data_1"], outputs=["result"], ) expect( node, inputs=[data_0, data_1], outputs=[result], name="test_min_two_inputs" ) ``` #### _min_all_numeric_types ```python import numpy as np import onnx for op_dtype in all_numeric_dtypes: data_0 = np.array([3, 2, 1]).astype(op_dtype) data_1 = np.array([1, 4, 4]).astype(op_dtype) result = np.array([1, 2, 1]).astype(op_dtype) node = onnx.helper.make_node( "Min", inputs=["data_0", "data_1"], outputs=["result"], ) expect( node, inputs=[data_0, data_1], outputs=[result], name=f"test_min_{np.dtype(op_dtype).name}", ) ``` ```{toctree} text_diff_Min_12_13 ``` (l-onnx-op-min-12)= ## Min - 12 ### Version - **name**: [Min (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Min) - **domain**: `main` - **since_version**: `12` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 12**. ### Summary Element-wise min of each of the input tensors (with Numpy-style broadcasting support). All inputs and outputs must have the same data type. This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [Broadcasting in ONNX](https://github.com/onnx/onnx/blob/main/docs/Broadcasting.md). ### Inputs Between 1 and 2147483647 inputs. - **data_0** (variadic, heterogeneous) - **T**: List of tensors for min. ### Outputs - **min** (heterogeneous) - **T**: Output tensor. ### Type Constraints * **T** in ( `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to numeric tensors. ```{toctree} text_diff_Min_8_13 text_diff_Min_8_12 ``` (l-onnx-op-min-8)= ## Min - 8 ### Version - **name**: [Min (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Min) - **domain**: `main` - **since_version**: `8` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 8**. ### Summary Element-wise min of each of the input tensors (with Numpy-style broadcasting support). All inputs and outputs must have the same data type. This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [Broadcasting in ONNX](https://github.com/onnx/onnx/blob/main/docs/Broadcasting.md). ### Inputs Between 1 and 2147483647 inputs. - **data_0** (variadic, heterogeneous) - **T**: List of tensors for min. ### Outputs - **min** (heterogeneous) - **T**: Output tensor. ### Type Constraints * **T** in ( `tensor(double)`, `tensor(float)`, `tensor(float16)` ): Constrain input and output types to float tensors. ```{toctree} text_diff_Min_6_13 text_diff_Min_6_12 text_diff_Min_6_8 ``` (l-onnx-op-min-6)= ## Min - 6 ### Version - **name**: [Min (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Min) - **domain**: `main` - **since_version**: `6` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 6**. ### Summary Element-wise min of each of the input tensors. All inputs and outputs must have the same shape and data type. ### Inputs Between 1 and 2147483647 inputs. - **data_0** (variadic, heterogeneous) - **T**: List of tensors for Min ### Outputs - **min** (heterogeneous) - **T**: Output tensor. Same dimension as inputs. ### Type Constraints * **T** in ( `tensor(double)`, `tensor(float)`, `tensor(float16)` ): Constrain input and output types to float tensors. ```{toctree} text_diff_Min_1_13 text_diff_Min_1_12 text_diff_Min_1_8 text_diff_Min_1_6 ``` (l-onnx-op-min-1)= ## Min - 1 ### Version - **name**: [Min (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Min) - **domain**: `main` - **since_version**: `1` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `False` This version of the operator has been available **since version 1**. ### Summary Element-wise min of each of the input tensors. All inputs and outputs must have the same shape and data type. ### Attributes * **consumed_inputs - INTS** : legacy optimization attribute. ### Inputs Between 1 and 2147483647 inputs. - **data_0** (variadic, heterogeneous) - **T**: List of tensors for Min ### Outputs - **min** (heterogeneous) - **T**: Output tensor. Same dimension as inputs. ### Type Constraints * **T** in ( `tensor(double)`, `tensor(float)`, `tensor(float16)` ): Constrain input and output types to float tensors.