Unsqueeze¶
Unsqueeze - 25¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
25function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 25.
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):
1D tensor 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(float8e8m0),tensor(int16),tensor(int2),tensor(int32),tensor(int4),tensor(int64),tensor(int8),tensor(string),tensor(uint16),tensor(uint2),tensor(uint32),tensor(uint4),tensor(uint64),tensor(uint8)):Constrain input and output types to all tensor types up to IRv13.
Examples¶
_unsqueeze_one_axis¶
import numpy as np
import onnx
x = np.random.randn(3, 4, 5).astype(np.float32)
for i in range(x.ndim):
axes = np.array([i]).astype(np.int64)
node = onnx.helper.make_node(
"Unsqueeze",
inputs=["x", "axes"],
outputs=["y"],
)
y = np.expand_dims(x, axis=i)
expect(
node,
inputs=[x, axes],
outputs=[y],
name="test_unsqueeze_axis_" + str(i),
)
_unsqueeze_two_axes¶
import numpy as np
import onnx
x = np.random.randn(3, 4, 5).astype(np.float32)
axes = np.array([1, 4]).astype(np.int64)
node = onnx.helper.make_node(
"Unsqueeze",
inputs=["x", "axes"],
outputs=["y"],
)
y = np.expand_dims(x, axis=1)
y = np.expand_dims(y, axis=4)
expect(node, inputs=[x, axes], outputs=[y], name="test_unsqueeze_two_axes")
_unsqueeze_three_axes¶
import numpy as np
import onnx
x = np.random.randn(3, 4, 5).astype(np.float32)
axes = np.array([2, 4, 5]).astype(np.int64)
node = onnx.helper.make_node(
"Unsqueeze",
inputs=["x", "axes"],
outputs=["y"],
)
y = np.expand_dims(x, axis=2)
y = np.expand_dims(y, axis=4)
y = np.expand_dims(y, axis=5)
expect(node, inputs=[x, axes], outputs=[y], name="test_unsqueeze_three_axes")
_unsqueeze_unsorted_axes¶
import numpy as np
import onnx
x = np.random.randn(3, 4, 5).astype(np.float32)
axes = np.array([5, 4, 2]).astype(np.int64)
node = onnx.helper.make_node(
"Unsqueeze",
inputs=["x", "axes"],
outputs=["y"],
)
y = np.expand_dims(x, axis=2)
y = np.expand_dims(y, axis=4)
y = np.expand_dims(y, axis=5)
expect(node, inputs=[x, axes], outputs=[y], name="test_unsqueeze_unsorted_axes")
_unsqueeze_negative_axes¶
import numpy as np
import onnx
node = onnx.helper.make_node(
"Unsqueeze",
inputs=["x", "axes"],
outputs=["y"],
)
x = np.random.randn(1, 3, 1, 5).astype(np.float32)
axes = np.array([-2]).astype(np.int64)
y = np.expand_dims(x, axis=-2)
expect(node, inputs=[x, axes], outputs=[y], name="test_unsqueeze_negative_axes")
Unsqueeze - 24¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
24function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 24.
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):
1D tensor 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(float8e8m0),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 IRv12.
Unsqueeze - 23¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
23function:
Falsesupport_level:
SupportType.COMMONshape 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):
1D tensor 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.
Unsqueeze - 21¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
21function:
Falsesupport_level:
SupportType.COMMONshape 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.
Unsqueeze - 13¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
13function:
Falsesupport_level:
SupportType.COMMONshape 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.
Unsqueeze - 11¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
11function:
Falsesupport_level:
SupportType.COMMONshape 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.
Unsqueeze - 1¶
Version¶
name: Unsqueeze (GitHub)
domain:
mainsince_version:
1function:
Falsesupport_level:
SupportType.COMMONshape 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.