Mean#
Domain:
ai.onnxSince version: 13
Element-wise mean 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 the doc.
Inputs
data_0 (T): List of tensors for mean.
Outputs
mean (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_mean_bcast
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(2, 2), dtype=float32
[[1., 2.],
[3., 4.]]
data_1: shape=(), dtype=float32
10.
Outputs:
result: shape=(2, 2), dtype=float32
[[5.5, 6. ],
[6.5, 7. ]]
test_cc_mean_column_row_scalar_double_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(2, 1), dtype=float64
[[0.],
[3.]]
data_1: shape=(3,), dtype=float64
[3., 6., 9.]
data_2: shape=(), dtype=float64
3.
Outputs:
result: shape=(2, 3), dtype=float64
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_column_row_scalar_float_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(2, 1), dtype=float32
[[0.],
[3.]]
data_1: shape=(3,), dtype=float32
[3., 6., 9.]
data_2: shape=(), dtype=float32
3.
Outputs:
result: shape=(2, 3), dtype=float32
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_crossed_dimensions_double_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(2, 1), dtype=float64
[[2.],
[4.]]
data_1: shape=(1, 3), dtype=float64
[[2., 4., 6.]]
Outputs:
result: shape=(2, 3), dtype=float64
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_crossed_dimensions_float_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(2, 1), dtype=float32
[[2.],
[4.]]
data_1: shape=(1, 3), dtype=float32
[[2., 4., 6.]]
Outputs:
result: shape=(2, 3), dtype=float32
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_five_inputs
Node:
Mean(data_0, data_1, data_2, data_3, data_4) -> (result)
Inputs:
data_0: shape=(3,), dtype=float32
[0., 1., 0.]
data_1: shape=(3,), dtype=float32
[1., 2., 2.]
data_2: shape=(3,), dtype=float32
[2., 3., 4.]
data_3: shape=(3,), dtype=float32
[3., 4., 6.]
data_4: shape=(3,), dtype=float32
[4., 5., 8.]
Outputs:
result: shape=(3,), dtype=float32
[2., 3., 4.]
test_cc_mean_scalar_first_double_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(), dtype=float64
2.
data_1: shape=(2, 2), dtype=float64
[[2., 4.],
[6., 8.]]
Outputs:
result: shape=(2, 2), dtype=float64
[[2., 3.],
[4., 5.]]
test_cc_mean_scalar_first_float_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(), dtype=float32
2.
data_1: shape=(2, 2), dtype=float32
[[2., 4.],
[6., 8.]]
Outputs:
result: shape=(2, 2), dtype=float32
[[2., 3.],
[4., 5.]]
test_cc_mean_scalar_last_double_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(2, 2), dtype=float64
[[2., 4.],
[6., 8.]]
data_1: shape=(), dtype=float64
2.
Outputs:
result: shape=(2, 2), dtype=float64
[[2., 3.],
[4., 5.]]
test_cc_mean_scalar_last_float_opset_13
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(2, 2), dtype=float32
[[2., 4.],
[6., 8.]]
data_1: shape=(), dtype=float32
2.
Outputs:
result: shape=(2, 2), dtype=float32
[[2., 3.],
[4., 5.]]
test_cc_mean_scalar_row_column_double_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(), dtype=float64
3.
data_1: shape=(3,), dtype=float64
[3., 6., 9.]
data_2: shape=(2, 1), dtype=float64
[[0.],
[3.]]
Outputs:
result: shape=(2, 3), dtype=float64
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_scalar_row_column_float_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(), dtype=float32
3.
data_1: shape=(3,), dtype=float32
[3., 6., 9.]
data_2: shape=(2, 1), dtype=float32
[[0.],
[3.]]
Outputs:
result: shape=(2, 3), dtype=float32
[[2., 3., 4.],
[3., 4., 5.]]
test_cc_mean_successive_rank_expansion_double_opset_13
Node:
Mean(data_0, data_1, data_2, data_3) -> (result)
Inputs:
data_0: shape=(), dtype=float64
4.
data_1: shape=(3,), dtype=float64
[0., 4., 8.]
data_2: shape=(2, 1), dtype=float64
[[0.],
[4.]]
data_3: shape=(2, 1, 1), dtype=float64
[[[0.]],
[[8.]]]
Outputs:
result: shape=(2, 2, 3), dtype=float64
[[[1., 2., 3.],
[2., 3., 4.]],
[[3., 4., 5.],
[4., 5., 6.]]]
test_cc_mean_successive_rank_expansion_float_opset_13
Node:
Mean(data_0, data_1, data_2, data_3) -> (result)
Inputs:
data_0: shape=(), dtype=float32
4.
data_1: shape=(3,), dtype=float32
[0., 4., 8.]
data_2: shape=(2, 1), dtype=float32
[[0.],
[4.]]
data_3: shape=(2, 1, 1), dtype=float32
[[[0.]],
[[8.]]]
Outputs:
result: shape=(2, 2, 3), dtype=float32
[[[1., 2., 3.],
[2., 3., 4.]],
[[3., 4., 5.],
[4., 5., 6.]]]
test_cc_mean_two_scalars_column_double_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(), dtype=float64
3.
data_1: shape=(), dtype=float64
6.
data_2: shape=(2, 1), dtype=float64
[[0.],
[3.]]
Outputs:
result: shape=(2, 1), dtype=float64
[[3.],
[4.]]
test_cc_mean_two_scalars_column_float_opset_13
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(), dtype=float32
3.
data_1: shape=(), dtype=float32
6.
data_2: shape=(2, 1), dtype=float32
[[0.],
[3.]]
Outputs:
result: shape=(2, 1), dtype=float32
[[3.],
[4.]]
test_mean_example
Node:
Mean(data_0, data_1, data_2) -> (result)
Inputs:
data_0: shape=(3,), dtype=float32
[3., 0., 2.]
data_1: shape=(3,), dtype=float32
[1., 3., 4.]
data_2: shape=(3,), dtype=float32
[2., 6., 6.]
Outputs:
result: shape=(3,), dtype=float32
[2., 3., 4.]
test_mean_one_input
Node:
Mean(data_0) -> (result)
Inputs:
data_0: shape=(3,), dtype=float32
[3., 0., 2.]
Outputs:
result: shape=(3,), dtype=float32
[3., 0., 2.]
test_mean_two_inputs
Node:
Mean(data_0, data_1) -> (result)
Inputs:
data_0: shape=(3,), dtype=float32
[3., 0., 2.]
data_1: shape=(3,), dtype=float32
[1., 3., 4.]
Outputs:
result: shape=(3,), dtype=float32
[2. , 1.5, 3. ]
Differences with previous version (8)#
SchemaDiff: Mean (domain 'ai.onnx')
old version: 8
new version: 13
breaking: no
Type constraints:
changed ‘T’: added types: [‘tensor(bfloat16)’]