Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
7e297b13
Commit
7e297b13
authored
Jun 13, 2022
by
Paul
Browse files
Merge
parents
86ea5e91
aa7ff911
Changes
765
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1756 additions
and
14 deletions
+1756
-14
test/onnx/depthtospace_test.onnx
test/onnx/depthtospace_test.onnx
+19
-0
test/onnx/eyelike_default_test.onnx
test/onnx/eyelike_default_test.onnx
+11
-0
test/onnx/eyelike_double_test.onnx
test/onnx/eyelike_double_test.onnx
+11
-0
test/onnx/eyelike_half_test.onnx
test/onnx/eyelike_half_test.onnx
+13
-0
test/onnx/eyelike_k_outofbounds_neg_test.onnx
test/onnx/eyelike_k_outofbounds_neg_test.onnx
+12
-0
test/onnx/eyelike_k_outofbounds_pos_test.onnx
test/onnx/eyelike_k_outofbounds_pos_test.onnx
+12
-0
test/onnx/eyelike_k_test.onnx
test/onnx/eyelike_k_test.onnx
+12
-0
test/onnx/eyelike_not_rank2_test.onnx
test/onnx/eyelike_not_rank2_test.onnx
+12
-0
test/onnx/eyelike_set_dtype_test.onnx
test/onnx/eyelike_set_dtype_test.onnx
+12
-0
test/onnx/eyelike_verify_negk_test.onnx
test/onnx/eyelike_verify_negk_test.onnx
+12
-0
test/onnx/eyelike_verify_test.onnx
test/onnx/eyelike_verify_test.onnx
+12
-0
test/onnx/gathernd_batch_dims_test.onnx
test/onnx/gathernd_batch_dims_test.onnx
+19
-0
test/onnx/gathernd_test.onnx
test/onnx/gathernd_test.onnx
+16
-0
test/onnx/gen_onnx.py
test/onnx/gen_onnx.py
+1503
-14
test/onnx/gen_onnx.pyc
test/onnx/gen_onnx.pyc
+0
-0
test/onnx/globallppool_test.onnx
test/onnx/globallppool_test.onnx
+15
-0
test/onnx/greaterorequal_test.onnx
test/onnx/greaterorequal_test.onnx
+16
-0
test/onnx/hardsigmoid_default_test.onnx
test/onnx/hardsigmoid_default_test.onnx
+15
-0
test/onnx/hardsigmoid_double_test.onnx
test/onnx/hardsigmoid_double_test.onnx
+17
-0
test/onnx/hardsigmoid_half_test.onnx
test/onnx/hardsigmoid_half_test.onnx
+17
-0
No files found.
test/onnx/depthtospace_test.onnx
0 → 100644
View file @
7e297b13
depthtospace_test:
6
xy"DepthToSpace*
blocksize*
mode"DCRdepthtospace_testZ
x
b
y
B
\ No newline at end of file
test/onnx/eyelike_default_test.onnx
0 → 100644
View file @
7e297b13
eyelike_default_test:U
T1T2"EyeLikeeyelike_default_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_double_test.onnx
0 → 100644
View file @
7e297b13
eyelike_double_test:T
T1T2"EyeLikeeyelike_double_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_half_test.onnx
0 → 100644
View file @
7e297b13
eyelike_half_test:R
T1T2"EyeLikeeyelike_half_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_k_outofbounds_neg_test.onnx
0 → 100644
View file @
7e297b13
eyelike_k_outofbounds_neg_test:r
$
T1T2"EyeLike*
keyelike_k_outofbounds_neg_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_k_outofbounds_pos_test.onnx
0 → 100644
View file @
7e297b13
eyelike_k_outofbounds_pos_test:i
T1T2"EyeLike*
keyelike_k_outofbounds_pos_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_k_test.onnx
0 → 100644
View file @
7e297b13
eyelike_k_test:Y
T1T2"EyeLike*
keyelike_k_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_not_rank2_test.onnx
0 → 100644
View file @
7e297b13
eyelike_not_rank2_test:[
T1T2"EyeLikeeyelike_not_rank2_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_set_dtype_test.onnx
0 → 100644
View file @
7e297b13
eyelike_set_dtype_test:e
T1T2"EyeLike*
dtypeeyelike_set_dtype_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_verify_negk_test.onnx
0 → 100644
View file @
7e297b13
eyelike_verify_negk_test:l
$
T1T2"EyeLike*
keyelike_verify_negk_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/eyelike_verify_test.onnx
0 → 100644
View file @
7e297b13
eyelike_verify_test:^
T1T2"EyeLike*
keyelike_verify_testZ
T1
b
T2
B
\ No newline at end of file
test/onnx/gathernd_batch_dims_test.onnx
0 → 100644
View file @
7e297b13
gathernd_batch_dims_test:
/
data
indicesy"GatherND*
batch_dimsgathernd_batch_dims_testZ
data
Z
indices
b
y
B
\ No newline at end of file
test/onnx/gathernd_test.onnx
0 → 100644
View file @
7e297b13
gathernd_test:q
data
indicesy"GatherND gathernd_testZ
data
Z
indices
b
y
B
\ No newline at end of file
test/onnx/gen_onnx.py
View file @
7e297b13
...
@@ -351,6 +351,65 @@ def ceil_test():
...
@@ -351,6 +351,65 @@ def ceil_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
celu_alpha_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
])
node
=
onnx
.
helper
.
make_node
(
'Celu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
0.8
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
celu_default_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'Celu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
celu_verify_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'Celu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
0.5
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
celu_wrong_type_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT16
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT16
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'Celu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
celu_zero_alpha_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'Celu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
0.0
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
clip_test
():
def
clip_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
])
...
@@ -426,6 +485,22 @@ def clip_test_op11_no_args1():
...
@@ -426,6 +485,22 @@ def clip_test_op11_no_args1():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
clip_test_args_type_mismatch
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
,
3
])
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
3
,
3
])
min_val
=
helper
.
make_tensor
(
'min'
,
TensorProto
.
FLOAT
,
[
1
,
3
],
[
1.5
,
2.5
,
3.5
])
max_val
=
helper
.
make_tensor
(
'max'
,
TensorProto
.
INT64
,
[
3
,
1
],
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'Clip'
,
inputs
=
[
'0'
,
'min'
,
'max'
],
outputs
=
[
'1'
])
return
([
node
],
[
x
],
[
y
],
[
min_val
,
max_val
])
@
onnx_test
@
onnx_test
def
concat_test
():
def
concat_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
2
,
4
,
3
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
2
,
4
,
3
])
...
@@ -1016,6 +1091,107 @@ def deconv_stride_test():
...
@@ -1016,6 +1091,107 @@ def deconv_stride_test():
return
([
node
],
[
x
,
w
],
[
y
])
return
([
node
],
[
x
,
w
],
[
y
])
@
onnx_test
def
depthtospace_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
8
,
5
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
10
,
10
])
node
=
onnx
.
helper
.
make_node
(
'DepthToSpace'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
,
mode
=
'DCR'
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
depthtospace_simple_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
8
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
4
,
6
])
node
=
onnx
.
helper
.
make_node
(
'DepthToSpace'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
,
mode
=
'DCR'
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
depthtospace_crd_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
8
,
5
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
10
,
10
])
node
=
onnx
.
helper
.
make_node
(
'DepthToSpace'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
,
mode
=
'CRD'
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
spacetodepth_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
float
,
[
2
,
2
,
10
,
10
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
float
,
[
2
,
8
,
5
,
5
])
node
=
onnx
.
helper
.
make_node
(
'spacetodepth'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
spacetodepth_simple_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
4
,
6
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
8
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'SpaceToDepth'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
spacetodepth_invalid_blocksize_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
4
,
6
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
8
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'SpaceToDepth'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
0.3
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
spacetodepth_nondivisibility_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
5
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
8
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'SpaceToDepth'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
blocksize
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
dequantizelinear_test
():
def
dequantizelinear_test
():
arg0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT8
,
[
5
])
arg0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT8
,
[
5
])
...
@@ -1280,6 +1456,114 @@ def expand_test():
...
@@ -1280,6 +1456,114 @@ def expand_test():
return
([
shape_const
,
node
],
[
x
],
[
y
])
return
([
shape_const
,
node
],
[
x
],
[
y
])
@
onnx_test
def
eyelike_default_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_double_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
DOUBLE
,
[
6
,
15
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
DOUBLE
,
[
6
,
15
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_half_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT16
,
[
8
,
8
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT16
,
[
8
,
8
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_k_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
k
=
1
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_k_outofbounds_neg_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
2
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
2
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
k
=-
2
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_k_outofbounds_pos_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
k
=
4
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_not_rank2_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
2
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_verify_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
k
=
1
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_verify_negk_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
k
=-
2
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
def
eyelike_set_dtype_test
():
T1
=
helper
.
make_tensor_value_info
(
'T1'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
T2
=
helper
.
make_tensor_value_info
(
'T2'
,
TensorProto
.
DOUBLE
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'EyeLike'
,
inputs
=
[
'T1'
],
outputs
=
[
'T2'
],
dtype
=
TensorProto
.
DOUBLE
)
return
([
node
],
[
T1
],
[
T2
])
@
onnx_test
@
onnx_test
def
flatten_test
():
def
flatten_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
,
5
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
,
5
])
...
@@ -1382,6 +1666,35 @@ def gather_elements_axis1_test():
...
@@ -1382,6 +1666,35 @@ def gather_elements_axis1_test():
return
([
node
],
[
x
,
i
],
[
y
])
return
([
node
],
[
x
,
i
],
[
y
])
@
onnx_test
def
gathernd_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
2
])
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
2
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
])
node
=
onnx
.
helper
.
make_node
(
'GatherND'
,
inputs
=
[
'data'
,
'indices'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
,
i
],
[
y
])
@
onnx_test
def
gathernd_batch_dims_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
1
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'GatherND'
,
inputs
=
[
'data'
,
'indices'
],
outputs
=
[
'y'
],
batch_dims
=
1
,
)
return
([
node
],
[
x
,
i
],
[
y
])
@
onnx_test
@
onnx_test
def
gemm_test
():
def
gemm_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
5
,
7
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
5
,
7
])
...
@@ -1465,6 +1778,20 @@ def globalavgpool_test():
...
@@ -1465,6 +1778,20 @@ def globalavgpool_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
globallppool_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
16
,
16
])
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
1
,
1
])
node
=
onnx
.
helper
.
make_node
(
'GlobalLpPool'
,
inputs
=
[
'0'
],
outputs
=
[
'1'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
globalmaxpool_test
():
def
globalmaxpool_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
16
,
16
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
16
,
16
])
...
@@ -1517,6 +1844,22 @@ def greater_bool_test():
...
@@ -1517,6 +1844,22 @@ def greater_bool_test():
return
([
node1
,
node2
],
[
x1
,
x2
],
[
y
])
return
([
node1
,
node2
],
[
x1
,
x2
],
[
y
])
@
onnx_test
def
greaterorequal_test
():
x1
=
helper
.
make_tensor_value_info
(
'x1'
,
TensorProto
.
FLOAT
,
[
3
])
x2
=
helper
.
make_tensor_value_info
(
'x2'
,
TensorProto
.
FLOAT
,
[
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
])
node
=
onnx
.
helper
.
make_node
(
'GreaterOrEqual'
,
inputs
=
[
'x1'
,
'x2'
],
outputs
=
[
'y'
],
)
return
([
node
],
[
x1
,
x2
],
[
y
])
@
onnx_test
@
onnx_test
def
group_conv_test
():
def
group_conv_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
4
,
16
,
16
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
4
,
16
,
16
])
...
@@ -1533,6 +1876,60 @@ def group_conv_test():
...
@@ -1533,6 +1876,60 @@ def group_conv_test():
return
([
node
],
[
x
,
y
],
[
z
])
return
([
node
],
[
x
,
y
],
[
z
])
@
onnx_test
def
hardsigmoid_default_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
4
,
5
])
node
=
onnx
.
helper
.
make_node
(
'HardSigmoid'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
hardsigmoid_double_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
DOUBLE
,
[
1
,
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
DOUBLE
,
[
1
,
3
,
4
,
5
])
node
=
onnx
.
helper
.
make_node
(
'HardSigmoid'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
0.3
,
beta
=
0.7
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
hardsigmoid_half_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT16
,
[
1
,
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT16
,
[
1
,
3
,
4
,
5
])
node
=
onnx
.
helper
.
make_node
(
'HardSigmoid'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
hardsigmoid_verify_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
5
])
node
=
onnx
.
helper
.
make_node
(
'HardSigmoid'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
hardswish_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
5
])
node
=
onnx
.
helper
.
make_node
(
'HardSwish'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
if_else_test
():
def
if_else_test
():
x
=
onnx
.
helper
.
make_tensor_value_info
(
'x'
,
onnx
.
TensorProto
.
FLOAT
,
[
2
,
3
])
x
=
onnx
.
helper
.
make_tensor_value_info
(
'x'
,
onnx
.
TensorProto
.
FLOAT
,
[
2
,
3
])
...
@@ -2136,6 +2533,32 @@ def instance_norm_val_3d_test():
...
@@ -2136,6 +2533,32 @@ def instance_norm_val_3d_test():
return
([
node
],
[],
[
y
],
[
x_tensor
,
scale_tensor
,
bias_tensor
])
return
([
node
],
[],
[
y
],
[
x_tensor
,
scale_tensor
,
bias_tensor
])
@
onnx_test
def
isnan_float_test
():
t1
=
helper
.
make_tensor_value_info
(
't1'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
t2
=
helper
.
make_tensor_value_info
(
't2'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'IsNaN'
,
inputs
=
[
't1'
],
outputs
=
[
't2'
],
)
return
([
node
],
[
t1
],
[
t2
])
@
onnx_test
def
isnan_half_test
():
t1
=
helper
.
make_tensor_value_info
(
't1'
,
TensorProto
.
FLOAT16
,
[
2
,
3
])
t2
=
helper
.
make_tensor_value_info
(
't2'
,
TensorProto
.
FLOAT16
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'IsNaN'
,
inputs
=
[
't1'
],
outputs
=
[
't2'
],
)
return
([
node
],
[
t1
],
[
t2
])
@
onnx_test
@
onnx_test
def
layernorm_test
():
def
layernorm_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
1
,
5
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
1
,
5
])
...
@@ -2347,23 +2770,191 @@ def logsoftmax_nonstd_input_test():
...
@@ -2347,23 +2770,191 @@ def logsoftmax_nonstd_input_test():
@
onnx_test
@
onnx_test
def
lrn_test
():
def
loop_default_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
28
,
24
,
24
])
body
=
helper
.
make_graph
([
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
28
,
24
,
24
])
helper
.
make_node
(
"Add"
,
[
"a"
,
"b_in"
],
[
"my_local"
]),
helper
.
make_node
(
"Sub"
,
[
"a"
,
"b_in"
],
[
"a_sub_b_in"
]),
helper
.
make_node
(
"Greater"
,
[
"my_local"
,
"a_sub_b_in"
],
[
"keep_going"
]),
helper
.
make_node
(
"Add"
,
[
"a_sub_b_in"
,
"a_sub_b_in"
],
[
"user_defined_vals"
]),
],
"body"
,
[
helper
.
make_tensor_value_info
(
'iteration_num'
,
TensorProto
.
INT64
,
[]),
helper
.
make_tensor_value_info
(
'keep_going_inp'
,
TensorProto
.
BOOL
,
[]),
helper
.
make_tensor_value_info
(
'b_in'
,
TensorProto
.
FLOAT
,
[])
],
[
helper
.
make_tensor_value_info
(
'keep_going'
,
TensorProto
.
BOOL
,
[]),
helper
.
make_tensor_value_info
(
'a_sub_b_in'
,
TensorProto
.
FLOAT
,
[]),
helper
.
make_tensor_value_info
(
'my_local'
,
TensorProto
.
FLOAT
,
[]),
helper
.
make_tensor_value_info
(
'user_defined_vals'
,
TensorProto
.
FLOAT
,
[]),
])
node
=
helper
.
make_node
(
"Loop"
,
inputs
=
[
""
,
""
,
"b"
],
outputs
=
[
"b_loop"
,
"my_local_loop"
,
"user_defined_vals_loop"
],
body
=
body
)
a
=
helper
.
make_tensor_value_info
(
'a'
,
TensorProto
.
FLOAT
,
[])
b
=
helper
.
make_tensor_value_info
(
'b'
,
TensorProto
.
FLOAT
,
[])
b_loop
=
helper
.
make_tensor_value_info
(
'b_loop'
,
TensorProto
.
FLOAT
,
[])
uout
=
helper
.
make_tensor_value_info
(
'user_defined_vals_loop'
,
TensorProto
.
FLOAT
,
[
2
,
1
])
return
([
node
],
[
a
,
b
],
[
b_loop
,
uout
])
@
onnx_test
def
loop_test
():
body
=
helper
.
make_graph
([
helper
.
make_node
(
"Add"
,
[
"a"
,
"b_in"
],
[
"my_local"
]),
helper
.
make_node
(
"Sub"
,
[
"a"
,
"b_in"
],
[
"a_sub_b_in"
]),
helper
.
make_node
(
"Greater"
,
[
"my_local"
,
"a_sub_b_in"
],
[
"keep_going"
]),
helper
.
make_node
(
"Add"
,
[
"a_sub_b_in"
,
"a_sub_b_in"
],
[
"user_defined_vals"
]),
],
"body"
,
[
helper
.
make_tensor_value_info
(
'iteration_num'
,
TensorProto
.
INT64
,
[
1
]),
helper
.
make_tensor_value_info
(
'keep_going_inp'
,
TensorProto
.
BOOL
,
[
1
]),
helper
.
make_tensor_value_info
(
'b_in'
,
TensorProto
.
FLOAT
,
[
1
])
],
[
helper
.
make_tensor_value_info
(
'keep_going'
,
TensorProto
.
BOOL
,
[
1
]),
helper
.
make_tensor_value_info
(
'a_sub_b_in'
,
TensorProto
.
FLOAT
,
[
1
]),
helper
.
make_tensor_value_info
(
'my_local'
,
TensorProto
.
FLOAT
,
[
1
]),
helper
.
make_tensor_value_info
(
'user_defined_vals'
,
TensorProto
.
FLOAT
,
[
1
]),
])
node
=
helper
.
make_node
(
"Loop"
,
inputs
=
[
"max_trip_count"
,
"keep_going_cond"
,
"b"
],
outputs
=
[
"b_loop"
,
"my_local_loop"
,
"user_defined_vals_loop"
],
body
=
body
)
a
=
helper
.
make_tensor_value_info
(
'a'
,
TensorProto
.
FLOAT
,
[
1
])
b
=
helper
.
make_tensor_value_info
(
'b'
,
TensorProto
.
FLOAT
,
[
1
])
cond
=
helper
.
make_tensor_value_info
(
'keep_going_cond'
,
TensorProto
.
BOOL
,
[
1
])
iter
=
helper
.
make_tensor_value_info
(
'max_trip_count'
,
TensorProto
.
INT64
,
[
1
])
node
=
onnx
.
helper
.
make_node
(
'LRN'
,
b_loop
=
helper
.
make_tensor_value_info
(
'b_loop'
,
TensorProto
.
FLOAT
,
[
1
])
inputs
=
[
'0'
],
uout
=
helper
.
make_tensor_value_info
(
'user_defined_vals_loop'
,
size
=
5
,
TensorProto
.
FLOAT
,
[
2
,
1
])
alpha
=
0.0001
,
beta
=
0.75
,
bias
=
1.0
,
outputs
=
[
'1'
])
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
iter
,
cond
,
a
,
b
],
[
b_loop
,
uout
])
@
onnx_test
@
onnx_test
def
matmul_bmbm_test
():
def
lpnormalization_axis_error_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'LpNormalization'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
axis
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lpnormalization_default_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'LpNormalization'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
axis
=
0
,
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lpnormalization_l1_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'LpNormalization'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
p
=
1
,
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lpnormalization_l2_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'LpNormalization'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
p
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lpnormalization_p_error_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'LpNormalization'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
p
=
3
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lppool_l1_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
3
])
node
=
onnx
.
helper
.
make_node
(
'LpPool'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
kernel_shape
=
[
3
],
p
=
1
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lppool_l2_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
3
])
node
=
onnx
.
helper
.
make_node
(
'LpPool'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
kernel_shape
=
[
3
],
p
=
2
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
lrn_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
28
,
24
,
24
])
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
28
,
24
,
24
])
node
=
onnx
.
helper
.
make_node
(
'LRN'
,
inputs
=
[
'0'
],
size
=
5
,
alpha
=
0.0001
,
beta
=
0.75
,
bias
=
1.0
,
outputs
=
[
'1'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
matmul_bmbm_test
():
m1
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
3
,
6
,
7
])
m1
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
3
,
6
,
7
])
m2
=
helper
.
make_tensor_value_info
(
'2'
,
TensorProto
.
FLOAT
,
[
5
,
2
,
1
,
7
,
8
])
m2
=
helper
.
make_tensor_value_info
(
'2'
,
TensorProto
.
FLOAT
,
[
5
,
2
,
1
,
7
,
8
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
5
,
2
,
3
,
6
,
8
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
5
,
2
,
3
,
6
,
8
])
...
@@ -2513,6 +3104,94 @@ def maxpool_same_upper_test():
...
@@ -2513,6 +3104,94 @@ def maxpool_same_upper_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
mean_broadcast_test
():
data_0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
4
])
data_1
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
,
4
])
data_2
=
helper
.
make_tensor_value_info
(
'2'
,
TensorProto
.
FLOAT
,
[
4
])
data_3
=
helper
.
make_tensor_value_info
(
'3'
,
TensorProto
.
FLOAT
,
[
1
])
data_4
=
helper
.
make_tensor_value_info
(
'4'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
1
])
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
[
"0"
,
"1"
,
"2"
,
"3"
,
"4"
],
outputs
=
[
"mean"
])
return
([
node
],
[
data_0
,
data_1
,
data_2
,
data_3
,
data_4
],
[
mean
])
@
onnx_test
def
mean_fp16_test
():
data_0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT16
,
[
1
,
2
,
3
])
data_1
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT16
,
[
1
,
2
,
3
])
data_2
=
helper
.
make_tensor_value_info
(
'2'
,
TensorProto
.
FLOAT16
,
[
1
,
2
,
3
])
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
FLOAT16
,
[
1
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
[
"0"
,
"1"
,
"2"
],
outputs
=
[
"mean"
])
return
([
node
],
[
data_0
,
data_1
,
data_2
],
[
mean
])
@
onnx_test
def
mean_invalid_broadcast_test
():
data_0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
])
data_1
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
])
data_2
=
helper
.
make_tensor_value_info
(
'2'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
4
])
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
[
"0"
,
"1"
,
"2"
],
outputs
=
[
"mean"
])
return
([
node
],
[
data_0
,
data_1
,
data_2
],
[
mean
])
@
onnx_test
def
mean_single_input_test
():
data_0
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
])
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
[
"0"
],
outputs
=
[
"mean"
])
return
([
node
],
[
data_0
],
[
mean
])
@
onnx_test
def
mean_test
():
data
=
[
helper
.
make_tensor_value_info
(
str
(
i
),
TensorProto
.
DOUBLE
,
[
2
,
2
,
2
])
for
i
in
range
(
10
)
]
data_names
=
[
str
(
i
)
for
i
in
range
(
10
)]
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
DOUBLE
,
[
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
data_names
,
outputs
=
[
"mean"
])
return
([
node
],
data
,
[
mean
])
@
onnx_test
def
mean_integral_test
():
data
=
[
helper
.
make_tensor_value_info
(
str
(
i
),
TensorProto
.
INT32
,
[
2
,
2
,
2
])
for
i
in
range
(
10
)
]
data_names
=
[
str
(
i
)
for
i
in
range
(
10
)]
mean
=
helper
.
make_tensor_value_info
(
'mean'
,
TensorProto
.
INT32
,
[
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
"Mean"
,
inputs
=
data_names
,
outputs
=
[
"mean"
])
return
([
node
],
data
,
[
mean
])
@
onnx_test
@
onnx_test
def
min_test
():
def
min_test
():
a
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
])
a
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
])
...
@@ -2529,6 +3208,74 @@ def min_test():
...
@@ -2529,6 +3208,74 @@ def min_test():
return
([
node
],
[
a
,
b
,
c
],
[
y
])
return
([
node
],
[
a
,
b
,
c
],
[
y
])
@
onnx_test
def
multinomial_test
():
sample_size
=
10
seed
=
0.0
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT32
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'Multinomial'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
seed
=
seed
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
multinomial_generated_seed_test
():
sample_size
=
10
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT32
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'Multinomial'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
multinomial_dtype_error_test
():
sample_size
=
10
dtype
=
0
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT64
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'Multinomial'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
dtype
=
dtype
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
multinomial_int64_test
():
sample_size
=
10
dtype
=
7
seed
=
1.0
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT64
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'Multinomial'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
dtype
=
dtype
,
seed
=
seed
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
@
onnx_test
def
neg_test
():
def
neg_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT64
,
[
2
,
3
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT64
,
[
2
,
3
])
...
@@ -2539,6 +3286,31 @@ def neg_test():
...
@@ -2539,6 +3286,31 @@ def neg_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
nms_test
():
b
=
helper
.
make_tensor_value_info
(
'boxes'
,
TensorProto
.
FLOAT
,
[
1
,
6
,
4
])
s
=
helper
.
make_tensor_value_info
(
'scores'
,
TensorProto
.
FLOAT
,
[
1
,
1
,
6
])
mo
=
helper
.
make_tensor_value_info
(
'max_output_boxes_per_class'
,
TensorProto
.
INT64
,
[
1
])
iou
=
helper
.
make_tensor_value_info
(
'iou_threshold'
,
TensorProto
.
FLOAT
,
[
1
])
st
=
helper
.
make_tensor_value_info
(
'score_threshold'
,
TensorProto
.
FLOAT
,
[
1
])
out
=
helper
.
make_tensor_value_info
(
'selected_indices'
,
TensorProto
.
INT64
,
[
6
,
3
])
node
=
onnx
.
helper
.
make_node
(
'NonMaxSuppression'
,
inputs
=
[
'boxes'
,
'scores'
,
'max_output_boxes_per_class'
,
'iou_threshold'
,
'score_threshold'
],
outputs
=
[
'selected_indices'
],
center_point_box
=
1
)
return
([
node
],
[
b
,
s
,
mo
,
iou
,
st
],
[
out
])
@
onnx_test
@
onnx_test
def
not_test
():
def
not_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT32
,
[
4
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
INT32
,
[
4
])
...
@@ -2572,6 +3344,18 @@ def no_pad_test():
...
@@ -2572,6 +3344,18 @@ def no_pad_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
nonzero_dynamic_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
BOOL
,
[
2
,
2
])
y
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'NonZero'
,
inputs
=
[
'data'
],
outputs
=
[
'indices'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
nonzero_test
():
def
nonzero_test
():
data1
=
np
.
array
([[
1.
,
0.
],
[
1.
,
1.
]])
data1
=
np
.
array
([[
1.
,
0.
],
[
1.
,
1.
]])
...
@@ -2869,6 +3653,216 @@ def quantizelinear_neg_axis_test():
...
@@ -2869,6 +3653,216 @@ def quantizelinear_neg_axis_test():
return
make_quantizelinear_axis_graph
(
-
2
)
return
make_quantizelinear_axis_graph
(
-
2
)
@
onnx_test
def
randomnormal_test
():
dtype
=
11
mean
=
10.0
scale
=
1.5
seed
=
0.0
shape
=
[
2
,
3
,
4
]
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
DOUBLE
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormal'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
,
mean
=
mean
,
scale
=
scale
,
seed
=
seed
,
shape
=
shape
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomnormal_dtype_error_test
():
dtype
=
6
shape
=
[
2
,
3
,
4
]
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormal'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
,
shape
=
shape
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomnormal_generated_seed_test
():
sample_size
=
10
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT32
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormal'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
randomnormal_shape_error_test
():
dtype
=
1
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormal'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomnormallike_test
():
dtype
=
10
mean
=
10.0
scale
=
1.5
seed
=
0.0
input
=
helper
.
make_tensor_value_info
(
'input'
,
TensorProto
.
FLOAT16
,
[
2
,
3
,
4
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT16
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormalLike'
,
inputs
=
[
'input'
],
outputs
=
[
'output'
],
dtype
=
dtype
,
mean
=
mean
,
scale
=
scale
,
seed
=
seed
)
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
randomnormallike_type_error_test
():
seed
=
0
input
=
helper
.
make_tensor_value_info
(
'input'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomNormalLike'
,
inputs
=
[
'input'
],
outputs
=
[
'output'
],
seed
=
seed
)
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
randomuniform_test
():
dtype
=
11
high
=
1.0
low
=
0.0
seed
=
0.0
shape
=
[
2
,
3
,
4
]
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
DOUBLE
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniform'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
,
high
=
high
,
low
=
low
,
seed
=
seed
,
shape
=
shape
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomuniform_dtype_error_test
():
dtype
=
6
shape
=
[
2
,
3
,
4
]
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniform'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
,
shape
=
shape
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomuniform_generated_seed_test
():
sample_size
=
10
input
=
helper
.
make_tensor_value_info
(
"input"
,
TensorProto
.
FLOAT
,
[
1
,
10
])
output
=
helper
.
make_tensor_value_info
(
"output"
,
TensorProto
.
INT32
,
[
1
,
10
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniform'
,
inputs
=
[
'input'
],
sample_size
=
sample_size
,
outputs
=
[
'output'
])
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
randomuniform_shape_error_test
():
dtype
=
1
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniform'
,
inputs
=
[],
outputs
=
[
'output'
],
dtype
=
dtype
)
return
([
node
],
[],
[
output
])
@
onnx_test
def
randomuniformlike_test
():
dtype
=
10
high
=
10.0
low
=
1.0
seed
=
0.0
input
=
helper
.
make_tensor_value_info
(
'input'
,
TensorProto
.
FLOAT16
,
[
2
,
3
,
4
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT16
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniformLike'
,
inputs
=
[
'input'
],
outputs
=
[
'output'
],
dtype
=
dtype
,
high
=
high
,
low
=
low
,
seed
=
seed
)
return
([
node
],
[
input
],
[
output
])
@
onnx_test
def
randomuniformlike_type_error_test
():
seed
=
0
input
=
helper
.
make_tensor_value_info
(
'input'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
])
node
=
onnx
.
helper
.
make_node
(
'RandomUniformLike'
,
inputs
=
[
'input'
],
outputs
=
[
'output'
],
seed
=
seed
)
return
([
node
],
[
input
],
[
output
])
@
onnx_test
@
onnx_test
def
range_test
():
def
range_test
():
...
@@ -3411,6 +4405,7 @@ def resize_upsample_pf_test():
...
@@ -3411,6 +4405,7 @@ def resize_upsample_pf_test():
return
([
node
],
[
X
],
[
Y
],
[
scale_tensor
])
return
([
node
],
[
X
],
[
Y
],
[
scale_tensor
])
@
onnx_test
def
resize_upsample_pc_test
():
def
resize_upsample_pc_test
():
scales
=
np
.
array
([
1.0
,
1.0
,
2.0
,
1.5
],
dtype
=
np
.
float32
)
scales
=
np
.
array
([
1.0
,
1.0
,
2.0
,
1.5
],
dtype
=
np
.
float32
)
scale_tensor
=
helper
.
make_tensor
(
name
=
'scales'
,
scale_tensor
=
helper
.
make_tensor
(
name
=
'scales'
,
...
@@ -3434,7 +4429,178 @@ def resize_upsample_pc_test():
...
@@ -3434,7 +4429,178 @@ def resize_upsample_pc_test():
@
onnx_test
@
onnx_test
def
scatter_test
():
def
reversesequence_4D_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
,
2
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
time_axis
=
0
,
batch_axis
=
1
,
sequence_lens
=
[
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_batch_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
seq_lens
=
np
.
array
([
1
,
2
,
3
,
4
])
seq_lens_tensor
=
helper
.
make_tensor
(
name
=
"sequence_lens"
,
data_type
=
TensorProto
.
INT64
,
dims
=
seq_lens
.
shape
,
vals
=
seq_lens
.
astype
(
np
.
int64
),
)
arg_seq_lens
=
helper
.
make_node
(
"Constant"
,
inputs
=
[],
outputs
=
[
'arg_seq_lens'
],
value
=
seq_lens_tensor
,
)
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
,
'arg_seq_lens'
],
outputs
=
[
'y'
],
time_axis
=
1
,
batch_axis
=
0
,
)
return
([
arg_seq_lens
,
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_batch_axis_err_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
,
2
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
,
2
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
time_axis
=
0
,
batch_axis
=
2
,
sequence_lens
=
[
4
,
3
,
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_rank_err_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
sequence_lens
=
[
4
,
3
,
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_sequence_lens_shape_err_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
sequence_lens
=
[
4
,
3
,
2
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_same_axis_err_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
time_axis
=
1
,
batch_axis
=
1
,
sequence_lens
=
[
4
,
3
,
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_time_axis_err_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
time_axis
=
3
,
batch_axis
=
0
,
sequence_lens
=
[
4
,
3
,
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
reversesequence_time_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
4
,
4
])
node
=
onnx
.
helper
.
make_node
(
'ReverseSequence'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
time_axis
=
0
,
batch_axis
=
1
,
sequence_lens
=
[
4
,
3
,
2
,
1
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
roialign_default_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
10
,
4
,
7
,
8
])
roi
=
helper
.
make_tensor_value_info
(
'rois'
,
TensorProto
.
FLOAT
,
[
8
,
4
])
bi
=
helper
.
make_tensor_value_info
(
'batch_ind'
,
TensorProto
.
INT64
,
[
8
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
8
,
4
,
1
,
1
])
node
=
onnx
.
helper
.
make_node
(
'RoiAlign'
,
inputs
=
[
'x'
,
'rois'
,
'batch_ind'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
,
roi
,
bi
],
[
y
])
@
onnx_test
def
roialign_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
10
,
5
,
4
,
7
])
roi
=
helper
.
make_tensor_value_info
(
'rois'
,
TensorProto
.
FLOAT
,
[
8
,
4
])
bi
=
helper
.
make_tensor_value_info
(
'batch_ind'
,
TensorProto
.
INT64
,
[
8
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
8
,
4
,
5
,
5
])
node
=
onnx
.
helper
.
make_node
(
'RoiAlign'
,
inputs
=
[
'x'
,
'rois'
,
'batch_ind'
],
outputs
=
[
'y'
],
spatial_scale
=
2.0
,
output_height
=
5
,
output_width
=
5
,
sampling_ratio
=
3
,
mode
=
"avg"
,
coordinate_transformation_mode
=
"output_half_pixel"
)
return
([
node
],
[
x
,
roi
,
bi
],
[
y
])
@
onnx_test
def
scatter_add_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT32
,
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
,
5
])
[
2
,
3
,
4
,
5
])
...
@@ -3443,7 +4609,8 @@ def scatter_test():
...
@@ -3443,7 +4609,8 @@ def scatter_test():
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
node
=
onnx
.
helper
.
make_node
(
node
=
onnx
.
helper
.
make_node
(
'Scatter'
,
'ScatterElements'
,
reduction
=
'add'
,
inputs
=
[
'data'
,
'indices'
,
'update'
],
inputs
=
[
'data'
,
'indices'
,
'update'
],
outputs
=
[
'y'
],
outputs
=
[
'y'
],
axis
=-
2
,
axis
=-
2
,
...
@@ -3452,6 +4619,99 @@ def scatter_test():
...
@@ -3452,6 +4619,99 @@ def scatter_test():
return
([
node
],
[
x
,
i
,
u
],
[
y
])
return
([
node
],
[
x
,
i
,
u
],
[
y
])
@
onnx_test
def
scatter_mul_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
,
5
])
u
=
helper
.
make_tensor_value_info
(
'update'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
node
=
onnx
.
helper
.
make_node
(
'ScatterElements'
,
reduction
=
'mul'
,
inputs
=
[
'data'
,
'indices'
,
'update'
],
outputs
=
[
'y'
],
axis
=-
2
,
)
return
([
node
],
[
x
,
i
,
u
],
[
y
])
@
onnx_test
def
scatter_none_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
i
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT32
,
[
2
,
3
,
4
,
5
])
u
=
helper
.
make_tensor_value_info
(
'update'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
node
=
onnx
.
helper
.
make_node
(
'ScatterElements'
,
reduction
=
'none'
,
inputs
=
[
'data'
,
'indices'
,
'update'
],
outputs
=
[
'y'
],
axis
=-
2
,
)
return
([
node
],
[
x
,
i
,
u
],
[
y
])
@
onnx_test
def
scatternd_add_test
():
data
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
indices
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
1
,
2
])
updates
=
helper
.
make_tensor_value_info
(
'updates'
,
TensorProto
.
FLOAT
,
[
2
,
1
,
2
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'ScatterND'
,
inputs
=
[
'data'
,
'indices'
,
'updates'
],
outputs
=
[
'output'
],
reduction
=
"add"
)
return
([
node
],
[
data
,
indices
,
updates
],
[
output
])
@
onnx_test
def
scatternd_mul_test
():
data
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
indices
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
1
,
2
])
updates
=
helper
.
make_tensor_value_info
(
'updates'
,
TensorProto
.
FLOAT
,
[
2
,
1
,
2
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'ScatterND'
,
inputs
=
[
'data'
,
'indices'
,
'updates'
],
outputs
=
[
'output'
],
reduction
=
"mul"
)
return
([
node
],
[
data
,
indices
,
updates
],
[
output
])
@
onnx_test
def
scatternd_test
():
data
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
indices
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
1
,
2
])
updates
=
helper
.
make_tensor_value_info
(
'updates'
,
TensorProto
.
FLOAT
,
[
2
,
1
,
2
])
output
=
helper
.
make_tensor_value_info
(
'output'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'ScatterND'
,
inputs
=
[
'data'
,
'indices'
,
'updates'
],
outputs
=
[
'output'
])
return
([
node
],
[
data
,
indices
,
updates
],
[
output
])
@
onnx_test
@
onnx_test
def
selu_test
():
def
selu_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
DOUBLE
,
[
2
,
3
])
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
DOUBLE
,
[
2
,
3
])
...
@@ -3557,6 +4817,54 @@ def sinh_test():
...
@@ -3557,6 +4817,54 @@ def sinh_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
size_float_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
3
,
4
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
INT64
,
[
1
])
node
=
onnx
.
helper
.
make_node
(
'Size'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
size_half_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT16
,
[
3
,
1
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
INT64
,
[
1
])
node
=
onnx
.
helper
.
make_node
(
'Size'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
size_int_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
INT32
,
[
8
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
INT64
,
[
1
])
node
=
onnx
.
helper
.
make_node
(
'Size'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
size_verify_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
5
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
INT64
,
[
1
])
node
=
onnx
.
helper
.
make_node
(
'Size'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
slice_test
():
def
slice_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
,
2
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
3
,
2
])
...
@@ -3805,6 +5113,44 @@ def softmax_nonstd_input_test():
...
@@ -3805,6 +5113,44 @@ def softmax_nonstd_input_test():
return
([
node0
,
node1
],
[
x
],
[
y
])
return
([
node0
,
node1
],
[
x
],
[
y
])
@
onnx_test
def
softsign_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
5
])
node
=
onnx
.
helper
.
make_node
(
'Softsign'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
def
softplus_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
5
])
node
=
onnx
.
helper
.
make_node
(
'Softplus'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
softsign_nd_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT16
,
[
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT16
,
[
3
,
4
,
5
])
node
=
onnx
.
helper
.
make_node
(
'Softsign'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
def
softplus_nd_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT16
,
[
3
,
4
,
5
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT16
,
[
3
,
4
,
5
])
node
=
onnx
.
helper
.
make_node
(
'Softplus'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
split_minus_axis_test
():
def
split_minus_axis_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
10
,
15
])
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
10
,
15
])
...
@@ -4126,6 +5472,46 @@ def tanh_test():
...
@@ -4126,6 +5472,46 @@ def tanh_test():
return
([
node
],
[
x
],
[
y
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
thresholdedrelu_default_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
3
])
node
=
onnx
.
helper
.
make_node
(
'ThresholdedRelu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
])
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
thresholdedrelu_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
3
])
alpha
=
3.0
node
=
onnx
.
helper
.
make_node
(
'ThresholdedRelu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
alpha
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
thresholdedrelu_int_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
INT32
,
[
2
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'y'
,
TensorProto
.
INT32
,
[
2
,
2
,
3
])
alpha
=
3.0
node
=
onnx
.
helper
.
make_node
(
'ThresholdedRelu'
,
inputs
=
[
'x'
],
outputs
=
[
'y'
],
alpha
=
alpha
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
tile_test
():
def
tile_test
():
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
2
])
x
=
helper
.
make_tensor_value_info
(
'x'
,
TensorProto
.
FLOAT
,
[
2
,
2
])
...
@@ -4150,6 +5536,90 @@ def tile_test_3x2():
...
@@ -4150,6 +5536,90 @@ def tile_test_3x2():
[
helper
.
make_tensor
(
'y'
,
TensorProto
.
INT64
,
[
2
],
[
3
,
2
])])
[
helper
.
make_tensor
(
'y'
,
TensorProto
.
INT64
,
[
2
],
[
3
,
2
])])
@
onnx_test
def
topk_attrk_test
():
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
5
,
3
,
2
])
val
=
helper
.
make_tensor_value_info
(
'val'
,
TensorProto
.
FLOAT
,
[
2
,
2
,
3
,
2
])
ind
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
2
,
3
,
2
])
node
=
onnx
.
helper
.
make_node
(
'TopK'
,
inputs
=
[
'data'
],
outputs
=
[
'val'
,
'indices'
],
k
=
2
)
return
([
node
],
[
x
],
[
val
,
ind
])
@
onnx_test
def
topk_neg_axis_test
():
k
=
np
.
array
([
3
])
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
3
,
4
,
5
,
6
])
val
=
helper
.
make_tensor_value_info
(
'val'
,
TensorProto
.
FLOAT
,
[
3
,
3
,
5
,
6
])
ind
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
3
,
3
,
5
,
6
])
k_tensor
=
helper
.
make_tensor
(
name
=
'k'
,
data_type
=
TensorProto
.
INT64
,
dims
=
k
.
shape
,
vals
=
k
.
astype
(
np
.
int64
))
node
=
onnx
.
helper
.
make_node
(
'TopK'
,
inputs
=
[
'data'
,
'k'
],
outputs
=
[
'val'
,
'indices'
],
axis
=-
2
,
sorted
=
0
)
return
([
node
],
[
x
],
[
val
,
ind
],
[
k_tensor
])
@
onnx_test
def
topk_test
():
k
=
np
.
array
([
4
])
x
=
helper
.
make_tensor_value_info
(
'data'
,
TensorProto
.
FLOAT
,
[
2
,
5
,
3
,
2
])
val
=
helper
.
make_tensor_value_info
(
'val'
,
TensorProto
.
FLOAT
,
[
2
,
4
,
3
,
2
])
ind
=
helper
.
make_tensor_value_info
(
'indices'
,
TensorProto
.
INT64
,
[
2
,
4
,
3
,
2
])
k_tensor
=
helper
.
make_tensor
(
name
=
'k'
,
data_type
=
TensorProto
.
INT64
,
dims
=
k
.
shape
,
vals
=
k
.
astype
(
np
.
int64
))
node
=
onnx
.
helper
.
make_node
(
'TopK'
,
inputs
=
[
'data'
,
'k'
],
outputs
=
[
'val'
,
'indices'
],
largest
=
0
,
axis
=
1
)
return
([
node
],
[
x
],
[
val
,
ind
],
[
k_tensor
])
def
transpose_default_perm_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
5
,
2
,
3
])
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
3
,
2
,
5
,
1
])
node
=
onnx
.
helper
.
make_node
(
'Transpose'
,
inputs
=
[
'0'
],
outputs
=
[
'1'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
def
transpose_invalid_perm_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
4
,
3
])
y
=
helper
.
make_tensor_value_info
(
'1'
,
TensorProto
.
FLOAT
,
[
1
,
3
,
2
,
2
])
node
=
onnx
.
helper
.
make_node
(
'Transpose'
,
perm
=
[
0
,
2
,
1
],
inputs
=
[
'0'
],
outputs
=
[
'1'
],
)
return
([
node
],
[
x
],
[
y
])
@
onnx_test
@
onnx_test
def
transpose_test
():
def
transpose_test
():
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
2
,
3
])
x
=
helper
.
make_tensor_value_info
(
'0'
,
TensorProto
.
FLOAT
,
[
1
,
2
,
2
,
3
])
...
@@ -4238,6 +5708,25 @@ def unknown_aten_test():
...
@@ -4238,6 +5708,25 @@ def unknown_aten_test():
return
([
node
],
[
x
,
y
],
[
a
])
return
([
node
],
[
x
,
y
],
[
a
])
@
onnx_test
def
upsample_linear_test
():
scales
=
np
.
array
([
1.0
,
1.0
,
2.0
,
2.0
],
dtype
=
np
.
float32
)
scales_tensor
=
helper
.
make_tensor
(
name
=
'scales'
,
data_type
=
TensorProto
.
FLOAT
,
dims
=
scales
.
shape
,
vals
=
scales
.
flatten
().
astype
(
np
.
float32
))
X
=
helper
.
make_tensor_value_info
(
'X'
,
TensorProto
.
FLOAT
,
[
1
,
1
,
2
,
2
])
Y
=
helper
.
make_tensor_value_info
(
'Y'
,
TensorProto
.
FLOAT
,
[])
node
=
onnx
.
helper
.
make_node
(
'Upsample'
,
inputs
=
[
'X'
,
''
,
'scales'
],
outputs
=
[
'Y'
],
mode
=
'linear'
)
return
([
node
],
[
X
],
[
Y
],
[
scales_tensor
])
@
onnx_test
@
onnx_test
def
upsample_test
():
def
upsample_test
():
scales
=
np
.
array
([
1.0
,
1.0
,
2.0
,
3.0
],
dtype
=
np
.
float32
)
scales
=
np
.
array
([
1.0
,
1.0
,
2.0
,
3.0
],
dtype
=
np
.
float32
)
...
...
test/onnx/gen_onnx.pyc
deleted
100644 → 0
View file @
86ea5e91
File deleted
test/onnx/globallppool_test.onnx
0 → 100644
View file @
7e297b13
globallppool_test:c
01"GlobalLpPoolgloballppool_testZ
0
b
1
B
\ No newline at end of file
test/onnx/greaterorequal_test.onnx
0 → 100644
View file @
7e297b13
greaterorequal_test:g
x1
x2y"GreaterOrEqualgreaterorequal_testZ
x1
Z
x2
b
y
B
\ No newline at end of file
test/onnx/hardsigmoid_default_test.onnx
0 → 100644
View file @
7e297b13
hardsigmoid_default_test:i
xy"HardSigmoidhardsigmoid_default_testZ
x
b
y
B
\ No newline at end of file
test/onnx/hardsigmoid_double_test.onnx
0 → 100644
View file @
7e297b13
hardsigmoid_double_test:
4
xy"HardSigmoid*
alpha>*
beta333?hardsigmoid_double_testZ
x
b
y
B
\ No newline at end of file
test/onnx/hardsigmoid_half_test.onnx
0 → 100644
View file @
7e297b13
hardsigmoid_half_test:f
xy"HardSigmoidhardsigmoid_half_testZ
x
b
y
B
\ No newline at end of file
Prev
1
…
22
23
24
25
26
27
28
29
30
…
39
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment