(l-onnx-doc-Unsqueeze)= # Unsqueeze (l-onnx-op-unsqueeze-23)= ## Unsqueeze - 23 ### Version - **name**: [Unsqueeze (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Unsqueeze) - **domain**: `main` - **since_version**: `23` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 23**. ### Summary Insert single-dimensional entries to the shape of an input tensor (`data`). Takes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). For example, given an input tensor (`data`) of shape [3, 4, 5], then Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. The input `axes` should not contain any duplicate entries. It is an error if it contains duplicates. The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. The order of values in `axes` does not matter and can come in any order. ### Inputs - **data** (heterogeneous) - **T**: Original tensor - **axes** (heterogeneous) - **tensor(int64)**: List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded). ### Outputs - **expanded** (heterogeneous) - **T**: Reshaped tensor with same data as input. ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(float4e2m1)`, `tensor(float8e4m3fn)`, `tensor(float8e4m3fnuz)`, `tensor(float8e5m2)`, `tensor(float8e5m2fnuz)`, `tensor(int16)`, `tensor(int32)`, `tensor(int4)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint4)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to all tensor types up to IRv11. ```{toctree} text_diff_Unsqueeze_21_23 ``` (l-onnx-op-unsqueeze-21)= ## Unsqueeze - 21 ### Version - **name**: [Unsqueeze (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Unsqueeze) - **domain**: `main` - **since_version**: `21` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 21**. ### Summary Insert single-dimensional entries to the shape of an input tensor (`data`). Takes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). For example, given an input tensor (`data`) of shape [3, 4, 5], then Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. The input `axes` should not contain any duplicate entries. It is an error if it contains duplicates. The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. The order of values in `axes` does not matter and can come in any order. ### Inputs - **data** (heterogeneous) - **T**: Original tensor - **axes** (heterogeneous) - **tensor(int64)**: List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded). ### Outputs - **expanded** (heterogeneous) - **T**: Reshaped tensor with same data as input. ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(float8e4m3fn)`, `tensor(float8e4m3fnuz)`, `tensor(float8e5m2)`, `tensor(float8e5m2fnuz)`, `tensor(int16)`, `tensor(int32)`, `tensor(int4)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint4)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to all tensor types up to IRv10. ```{toctree} text_diff_Unsqueeze_13_23 text_diff_Unsqueeze_13_21 ``` (l-onnx-op-unsqueeze-13)= ## Unsqueeze - 13 ### Version - **name**: [Unsqueeze (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Unsqueeze) - **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 Insert single-dimensional entries to the shape of an input tensor (`data`). Takes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). For example, given an input tensor (`data`) of shape [3, 4, 5], then Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. The input `axes` should not contain any duplicate entries. It is an error if it contains duplicates. The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. The order of values in `axes` does not matter and can come in any order. ### Inputs - **data** (heterogeneous) - **T**: Original tensor - **axes** (heterogeneous) - **tensor(int64)**: List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded). ### Outputs - **expanded** (heterogeneous) - **T**: Reshaped tensor with same data as input. ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to all tensor types. ```{toctree} text_diff_Unsqueeze_11_23 text_diff_Unsqueeze_11_21 text_diff_Unsqueeze_11_13 ``` (l-onnx-op-unsqueeze-11)= ## Unsqueeze - 11 ### Version - **name**: [Unsqueeze (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Unsqueeze) - **domain**: `main` - **since_version**: `11` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 11**. ### Summary Insert single-dimensional entries to the shape of an input tensor (`data`). Takes one required argument `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). For example: Given an input tensor (`data`) of shape [3, 4, 5], then Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. The attribute `axes` should not contain any duplicate entries. It is an error if it contains duplicates. The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. The order of values in `axes` does not matter and can come in any order. ### Attributes * **axes - INTS** (required) : List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded). ### Inputs - **data** (heterogeneous) - **T**: Original tensor ### Outputs - **expanded** (heterogeneous) - **T**: Reshaped tensor with same data as input. ### Type Constraints * **T** in ( `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to all tensor types. ```{toctree} text_diff_Unsqueeze_1_23 text_diff_Unsqueeze_1_21 text_diff_Unsqueeze_1_13 text_diff_Unsqueeze_1_11 ``` (l-onnx-op-unsqueeze-1)= ## Unsqueeze - 1 ### Version - **name**: [Unsqueeze (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#Unsqueeze) - **domain**: `main` - **since_version**: `1` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 1**. ### Summary Insert single-dimensional entries to the shape of a tensor. Takes one required argument `axes`, a list of dimensions that will be inserted. Dimension indices in `axes` are as seen in the output tensor. For example: Given a tensor such that tensor with shape [3, 4, 5], then Unsqueeze(tensor, axes=[0, 4]) has shape [1, 3, 4, 5, 1] ### Attributes * **axes - INTS** (required) : List of non-negative integers, indicate the dimensions to be inserted ### Inputs - **data** (heterogeneous) - **T**: Original tensor ### Outputs - **expanded** (heterogeneous) - **T**: Reshaped tensor with same data as input. ### Type Constraints * **T** in ( `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain input and output types to all tensor types.