This repository has been archived by the owner on Jan 13, 2024. It is now read-only.
/
numpy_onnx_pyrt.py
381 lines (276 loc) · 7.91 KB
/
numpy_onnx_pyrt.py
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
"""
@file
@brief :epkg:`numpy` functions implemented with :epkg:`onnx`
and compiled with this python runtime.
.. versionadded:: 0.6
"""
import numpy
from .onnx_numpy_annotation import (
NDArrayType,
NDArrayTypeSameShape,
NDArraySameType,
NDArraySameTypeSameShape)
from .numpy_onnx_impl import (
abs as nx_abs,
acos as nx_acos,
acosh as nx_acosh,
amin as nx_min,
amax as nx_max,
arange as nx_arange,
argmax as nx_argmax,
argmin as nx_argmin,
asin as nx_asin,
asinh as nx_asinh,
atan as nx_atan,
atanh as nx_atanh,
ceil as nx_ceil,
clip as nx_clip,
compress as nx_compress,
cos as nx_cos,
cosh as nx_cosh,
cumsum as nx_cumsum,
concat as nx_concat,
det as nx_det,
dot as nx_dot,
einsum as nx_einsum,
erf as nx_erf,
exp as nx_exp,
expit as nx_expit,
expand_dims as nx_expand_dims,
floor as nx_floor,
hstack as nx_hstack,
isnan as nx_isnan,
log as nx_log,
log1p as nx_log1p,
matmul as nx_matmul,
mean as nx_mean,
pad as nx_pad,
prod as nx_prod,
reciprocal as nx_reciprocal,
relu as nx_relu,
round as nx_round,
sigmoid as nx_sigmoid,
sign as nx_sign,
sin as nx_sin,
sinh as nx_sinh,
sqrt as nx_sqrt,
squeeze as nx_squeeze,
sum as nx_sum,
tan as nx_tan,
tanh as nx_tanh,
topk as nx_topk,
transpose as nx_transpose,
unsqueeze as nx_unsqueeze,
vstack as nx_vstack,
where as nx_where,
)
from .onnx_numpy_wrapper import onnxnumpy_np
@onnxnumpy_np(signature=NDArraySameTypeSameShape("all"))
def abs(x):
"abs"
return nx_abs(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def acos(x):
"acos"
return nx_acos(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def acosh(x):
"acosh"
return nx_acosh(x)
@onnxnumpy_np(signature=NDArrayType((numpy.int64, numpy.int64)))
def arange(start, stop, step=1):
"arange, *start*, *stop* must be specified."
return nx_arange(start, stop, step=step)
@onnxnumpy_np(signature=NDArraySameType("all"))
def amax(x, axis=None, keepdims=0):
"amax"
return nx_max(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArraySameType("all"))
def amin(x, axis=None, keepdims=0):
"amin"
return nx_min(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArrayType("all_int"))
def argmax(x, axis=0, keepdims=0):
"argmax"
return nx_argmax(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArrayType("all_int"))
def argmin(x, axis=0, keepdims=0):
"argmin"
return nx_argmin(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def asin(x):
"asin"
return nx_asin(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def asinh(x):
"asinh"
return nx_asinh(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def atan(x):
"atan"
return nx_atan(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def atanh(x):
"atanh"
return nx_atanh(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def ceil(x):
"ceil"
return nx_ceil(x)
@onnxnumpy_np(
signature=NDArrayType(("all", "all", "all"), n_optional=2))
def clip(x, a_min=None, a_max=None):
"clip"
return nx_clip(x, a_min, a_max)
@onnxnumpy_np(signature=NDArrayType(("bool", "T:all"), dtypes_out=('T',)))
def compress(condition, x, axis=None):
"compress"
return nx_compress(condition, x, axis=axis)
@onnxnumpy_np(signature=NDArrayType("all", nvars=True))
def concat(*x, axis=0):
"concat"
return nx_concat(*x, axis=axis)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def cos(x):
"cos"
return nx_cos(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def cosh(x):
"cosh"
return nx_cosh(x)
@onnxnumpy_np(signature=NDArrayType(("all", "ints")))
def cumsum(x, axis):
"cumsum"
return nx_cumsum(x, axis)
@onnxnumpy_np(signature=NDArrayType("all"))
def det(x):
"det"
return nx_det(x)
@onnxnumpy_np(signature=NDArrayType(("T:all", "T")))
def dot(a, b):
"dot"
return nx_dot(a, b)
@onnxnumpy_np(signature=NDArrayType("all", nvars=True))
def einsum(*x, equation=None):
"einsum"
return nx_einsum(*x, equation=equation)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def erf(x):
"erf"
return nx_erf(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def exp(x):
"exp"
return nx_exp(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def expit(x):
"expit"
return nx_expit(x)
@onnxnumpy_np(signature=NDArrayType("floats"))
def expand_dims(x, axis=0):
"expand_dims"
return nx_expand_dims(x, axis)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def floor(x):
"floor"
return nx_floor(x)
@onnxnumpy_np(signature=NDArrayType("all", nvars=True))
def hstack(*x):
"hstack"
return nx_hstack(*x)
@onnxnumpy_np(signature=NDArrayTypeSameShape("all_bool"))
def isnan(x):
"isnan"
return nx_isnan(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def log(x):
"log"
return nx_log(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def log1p(x):
"log1p"
return nx_log1p(x)
@onnxnumpy_np(signature=NDArrayType(("T:all", "T")))
def matmul(a, b):
"matmul"
return nx_matmul(a, b)
@onnxnumpy_np(signature=NDArrayType(("T:all", numpy.int64, 'T'), n_optional=1))
def pad(x, pads, constant_value=None, mode='constant'):
"pad"
return nx_pad(x, pads, mode=mode, constant_value=constant_value)
@onnxnumpy_np(signature=NDArraySameType("all"))
def prod(x, axis=None, keepdims=0):
"prod"
return nx_prod(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArraySameType("all"))
def mean(x, axis=None, keepdims=0):
"mean"
return nx_mean(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def reciprocal(x):
"reciprocal"
return nx_reciprocal(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def relu(x):
"relu"
return nx_relu(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def round(x):
"round"
return nx_round(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def sigmoid(x):
"expit"
return nx_sigmoid(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def sign(x):
"sign"
return nx_sign(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def sin(x):
"sin"
return nx_sin(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def sinh(x):
"sinh"
return nx_sinh(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def sqrt(x):
"sqrt"
return nx_sqrt(x)
@onnxnumpy_np(signature=NDArrayType(("all", numpy.int64), n_optional=1))
def squeeze(x, axis=None):
"squeeze"
return nx_squeeze(x, axis)
@onnxnumpy_np(signature=NDArraySameType("all"))
def sum(x, axis=None, keepdims=0):
"sum"
return nx_sum(x, axis=axis, keepdims=keepdims)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def tan(x):
"tan"
return nx_tan(x)
@onnxnumpy_np(signature=NDArraySameTypeSameShape("floats"))
def tanh(x):
"tanh"
return nx_tanh(x)
@onnxnumpy_np(signature=NDArrayType(("T:all", "ints"), ("T", (numpy.int64,))))
def topk(x, k, axis=-1, largest=1, sorted=1):
"topk"
return nx_topk(x, k, axis=axis, largest=largest, sorted=sorted)
@onnxnumpy_np(signature=NDArraySameType("all"))
def transpose(x, perm=(1, 0)):
"transpose"
return nx_transpose(x, perm=perm)
@onnxnumpy_np(signature=NDArrayType(("all", numpy.int64)))
def unsqueeze(x, axes):
"unsqueeze"
return nx_unsqueeze(x, axes)
@onnxnumpy_np(signature=NDArrayType("all", nvars=True))
def vstack(*x):
"vstack"
return nx_vstack(*x)
@onnxnumpy_np(signature=NDArrayType(("bool", "T:all", "T"), ("T", )))
def where(cond, x, y):
"where"
return nx_where(cond, x, y)