File: onnx_backend_test.py

package info (click to toggle)
pytorch 1.13.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 139,252 kB
  • sloc: cpp: 1,100,274; python: 706,454; ansic: 83,052; asm: 7,618; java: 3,273; sh: 2,841; javascript: 612; makefile: 323; xml: 269; ruby: 185; yacc: 144; objc: 68; lex: 44
file content (199 lines) | stat: -rw-r--r-- 10,706 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# @package onnx
# Module caffe2.python.onnx.tests.onnx_backend_test






import os
import unittest

import onnx.backend.test

import caffe2.python.onnx.backend as c2
from caffe2.python import core

core.SetEnginePref({}, {})

# This is a pytest magic variable to load extra plugins
pytest_plugins = 'onnx.backend.test.report',

backend_test = onnx.backend.test.BackendTest(c2, __name__)

backend_test.exclude(r'(test_hardsigmoid'  # Does not support Hardsigmoid.
                     '|test_hardmax'  # Does not support Hardmax.
                     '|test_.*FLOAT16.*'  # Does not support Cast on Float16.
                     '|test_depthtospace.*'  # Does not support DepthToSpace.
                     '|test_reduce_l1.*'  # Does not support ReduceL1.
                     '|test_reduce_l2.*'  # Does not support ReduceL2.
                     '|test_reduce_log_sum.*'  # Does not support ReduceLogSum.
                     '|test_reduce_prod.*'  # Does not support ReduceProd.
                     '|test_reduce_sum_square.*'  # Does not support ReduceSumSquare
                     '|test_det.*'  # Does not support Det
                     '|test_range.*'  # Does not support Range
                     '|test_tile.*'  # Tile's Caffe2 implementation needs some tweak
                     '|test_lstm.*'  # Seems LSTM case has some problem
                     '|test_simple_rnn.*'  # Seems simple RNN case has some problem
                     '|test_gru.*'  # Seems GRU case has some problem
                     '|test_prelu.*'  # PRelu is not compliant with ONNX yet
                     '|test_operator_repeat.*'  # Tile is not compliant with ONNX yet
                     '|test_.*pool_.*same.*'  # Does not support pool same.
                     '|test_.*pool_.*ceil.*'  # Does not support pool same.
                     '|test_maxpool_with_argmax.*'  # MaxPool outputs indices in different format.
                     '|test_maxpool.*dilation.*'  # MaxPool doesn't support dilation yet.
                     '|test_maxpool.*uint8.*'  # MaxPool doesn't support uint8 yet.
                     '|test_convtranspose.*'  # ConvTranspose needs some more complicated translation
                     '|test_mvn.*'  # MeanVarianceNormalization is experimental and not supported.
                     '|test_dynamic_slice.*'  # MeanVarianceNormalization is experimental and not supported.
                     '|test_eyelike.*'  # Needs implementation
                     '|test_maxunpool.*'  # Needs implementation
                     '|test_acosh.*'  # Needs implementation
                     '|test_asinh.*'  # Needs implementation
                     '|test_atanh.*'  # Needs implementation
                     '|test_onehot.*'  # Needs implementation
                     '|test_scan.*'  # Needs implementation
                     '|test_isnan.*'  # Needs implementation
                     '|test_scatter.*'  # Should be similar to ScatterAssign
                     '|test_constantofshape_int.*'  # Needs implementation
                     '|test_shrink.*'  # Needs implementation
                     '|test_strnorm.*'  # Needs implementation
                     '|test_nonzero.*'  # Needs implementation
                     '|test_tfidfvectorizer.*'  # Needs implementation
                     '|test_top_k.*'  # opset 10 is not supported yet
                     '|test_resize.*'  # opset 10 is not supported yet
                     '|test_slice.*'  # opset 10 is not supported yet
                     '|test_.*qlinear.*'  # Skip quantized op test
                     '|test_.*quantize.*'  # Skip quantized op test
                     '|test_.*matmulinteger.*'  # Skip quantized op test
                     '|test_.*convinteger.*'  # Skip quantized op test
                     '|test_isinf.*'  # Needs implementation
                     '|test_mod.*'  # Needs implementation
                     '|test_nonmaxsuppression.*'  # Needs implementation
                     '|test_reversesequence.*'  # Needs implementation
                     '|test_roialign.*'  # Needs implementation
                     '|test_bitshift.*'  # Needs implementation
                     '|test_round.*'  # Needs implementation
                     '|test_cumsum.*'  # Needs implementation
                     '|test_clip.*'  # opset 11 is not supported yet
                     '|test_gather_elements.*'  # opset 11 is not supported yet
                     '|test_scatter.*'  # opset 11 is not supported yet
                     '|test_unique.*'  # opset 11 is not supported yet
                     '|test_gathernd.*'  # opset 11 is not supported yet
                     '|test_dropout_random.*'  # opset 12 is not supported
                     '|test_dropout_default.*'  # opset 12 is not supported
                     '|test_einsum.*'  # opset 12 is not supported
                     '|test_.*training.*'  # training is not supported
                     '|test_.*_loss.*'  # training is not supported
                     '|test_split_zero_size.*'  # unsupported case
                     '|test_constantofshape_int_shape_zero.*'  # unsupported case
                     '|test_constant_pad.*'  # 1d pad is not supported
                     '|test_edge_pad.*'  # 1d pad is not supported
                     '|test_reflect_pad.*'  # 1d pad is not supported
                     '|test_gemm_default_no_bias.*'  # no bias is not supported
                     '|test_gemm_default_scalar_bias.*'  # incorrect type
                     '|test_sequence_.*'  # type sequence is not supported yet
                     '|test_.*negative_ax.*'  # negative axis is not supported yet
                     '|test_.*negative_ind.*'  # negative axis is not supported yet
                     '|test_argmax_.*select_last_index.*'  # unsupported case
                     '|test_argmin_.*select_last_index_.*'  # unsupported case
                     '|test_celu.*'  # unsupported case
                     '|test_gathernd.*'  # unsupported case
                     '|test_greater_equal.*'  # unsupported case
                     '|test_less_equal.*'  # unsupported case
                     '|test_max_.*'  # unsupported case
                     '|test_min_.*'  # unsupported case
                     '|test_.*momentum_.*'  # unsupported case
                     '|test_sce.*'  # unsupported case
                     '|test_nllloss.*'  # unsupported case
                     '|test_unfoldtodepth.*'  # unsupported case
                     '|test_.*gradient.*'  # no support for gradient op in c2-onnx
                     '|test_.*adagrad.*'  # no support for gradient op in c2-onnx
                     '|test_.*loss.*'  # no support for loss op in c2-onnx
                     '|test_.*adam.*'  # no support for adam op
                     '|test_.*identity.*'  # no support for adam op
                     ')')

# Quick patch to unbreak master CI, is working on the debugging.
backend_test.exclude('(test_cast_.*'
                     '|test_compress_.*'
                     '|test_Conv1d_.*cuda'
                     '|test_Conv3d_groups_cuda'
                     '|test_rnn_seq_length'
                     '|test_operator_add.*_cuda'
                     '|test_operator_lstm_cuda'
                     '|test_operator_rnn.*_cuda'
                     '|test_lrn_default_cuda)')

# Temporarily skip some ONNX backend tests with broadcasting.
backend_test.exclude('(test_pow_bcast'
                     '|test_pow_types.*'
                     ')')

# Temporarily skip some ONNX backend tests due to updates in opset 13.
backend_test.exclude('(test_if_.*'  # added support for sequence type inputs
                     '|test_if_seq_.*'  # added support for sequence type inputs
                     '|test_logsoftmax_.*'  # axis attr default value changed from 1 to -1
                     '|test_loop11_.*'  # seg fault issue
                     '|test_loop16_.*'  # seg fault issue
                     '|test_loop13_seq_.*'  # no support for sequence inputs for scan input
                     '|test_reduce_sum_.*'  # axes is now an input (not attr), added noop_with_empty_axes
                     '|test_softmax_.*'  # axis attr default value changed from 1 to -1
                     '|test_split_variable_parts_.*'  # axes is now an input (not attr)
                     '|test_squeeze_.*'  # axes is now an input (not attr)
                     '|test_unsqueeze_.*'  # axes is now an input (not attr)
                     '|test_MaxPool1d_stride_padding_dilation_.*'
                     '|test_MaxPool2d_stride_padding_dilation_.*'
                     ')')

# Temporarily skip some ONNX backend tests due to updates in opset 14.
backend_test.exclude('(test_add_uint8_.*'  # uint8 dtype added
                     '|test_div_uint8_.*'  # uint8 dtype added
                     '|test_hardswish_.*'  # new operator added
                     '|test_mul_uint8_.*'  # uint8 dtype added
                     '|test_sub_uint8_.*'  # uint8 dtype added
                     '|test_tril_.*'  # new operator added
                     '|test_triu_.*'  # new operator added
                     '|test_identity_sequence_.*'  # new operator added
                     '|test_reshape_allowzero_reordered_.*'
                     '|test_conv_with_autopad_same_.*'
                     ')')

# Unsupported ops in opset 15
backend_test.exclude('(test_bernoulli_.*'
                     '|test_castlike_.*'
                     '|test_optional_.*'
                     '|test_shape_end_.*'
                     '|test_shape_start_.*'
                     '|test_identity_opt_*'
                     '|test_loop16_seq_none_*'
                     '|test_if_opt_*'
                     ')')

# Unsupported ops in opset 16
backend_test.exclude('(test_gridsample_.*'
                     '|test_spacetodepth_.*'
                     ')')

# Unsupported ops in opset 17
backend_test.exclude('(test_layer_normalization_.*'
                     '|test_blackmanwindow_.*'
                     '|test_dft_.*'
                     '|test_hammingwindow_.*'
                     '|test_hannwindow_.*'
                     '|test_melweightmatrix_.*'
                     '|test_stft_.*'
                     '|test_sequencemap_.*'
                     ')')

# Skip vgg to speed up CI
if 'JENKINS_URL' in os.environ:
    backend_test.exclude(r'(test_vgg19|test_vgg)')

# import all test cases at global scope to make them visible to python.unittest
globals().update(backend_test
                 .enable_report()
                 .test_cases)

if __name__ == '__main__':
    unittest.main()