
Contents
More
Note
Go to the endto download the full example code.
ExampleFirst examples with onnx-array-api defines a customloss and then executes it with classonnx.reference.ReferenceEvaluator.Next example replaces it withonnxruntime.
importnumpyasnpfromonnx_array_api.npximportabsolute,jit_onnxfromonnx_array_api.ort.ort_tensorsimportJitOrtTensor,OrtTensordefl1_loss(x,y):returnabsolute(x-y).sum()defl2_loss(x,y):return((x-y)**2).sum()defmyloss(x,y):l1=l1_loss(x[:,0],y[:,0])l2=l2_loss(x[:,1],y[:,1])returnl1+l2ort_myloss=jit_onnx(myloss,JitOrtTensor,target_opsets={"":17},ir_version=8)x=np.array([[0.1,0.2],[0.3,0.4]],dtype=np.float32)y=np.array([[0.11,0.22],[0.33,0.44]],dtype=np.float32)xort=OrtTensor.from_array(x)yort=OrtTensor.from_array(y)res=ort_myloss(xort,yort)print(res.numpy())
0.042
fromonnx_array_api.profilingimportprofile,profile2graphx=np.random.randn(10000,2).astype(np.float32)y=np.random.randn(10000,2).astype(np.float32)xort=OrtTensor.from_array(x)yort=OrtTensor.from_array(y)defloop_ort(n):for_inrange(n):ort_myloss(xort,yort)defloop_numpy(n):for_inrange(n):myloss(x,y)defloop(n=1000):loop_numpy(n)loop_ort(n)ps=profile(loop)[0]root,nodes=profile2graph(ps,clean_text=lambdax:x.split("/")[-1])text=root.to_text()print(text)
isEnabledFor -- 8000 8000 -- 0.00371 0.00371 -- __init__.py:1724:isEnabledFor (isEnabledFor)_leading_trailing -- 4000 20000 -- 0.06081 0.07644 -- arrayprint.py:398:_leading_trailing (_leading_trailing) __getitem__ -- 16000 16000 -- 0.00818 0.01145 -- _index_tricks_impl.py:794:__getitem__ (__getitem__) <built-in method builtins.isinstance> -- 16000 16000 -- 0.00327 0.00327 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ _leading_trailing -- 16000 8000 -- 0.02244 0.02930 -- arrayprint.py:398:_leading_trailing (_leading_trailing) +++ concatenate -- 4000 4000 -- 0.00139 0.00139 -- multiarray.py:161:concatenate (concatenate) <built-in method builtins.len> -- 20000 20000 -- 0.00280 0.00280 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++recurser -- 4000 76000 -- 0.23592 0.55795 -- arrayprint.py:829:recurser (recurser) _extendLine_pretty -- 48000 48000 -- 0.05146 0.13610 -- arrayprint.py:793:_extendLine_pretty (_extendLine_pretty) _extendLine -- 48000 48000 -- 0.05162 0.06916 -- arrayprint.py:779:_extendLine (_extendLine) <built-in method builtins.len> -- 192000 192000 -- 0.01753 0.01753 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <method 'splitlines' of 'str' objects> -- 48000 48000 -- 0.00925 0.00925 -- ~:0:<method 'splitlines' of 'str' objects> (<method 'splitlines' of 'str' objects>) <built-in method builtins.len> -- 48000 48000 -- 0.00623 0.00623 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ recurser -- 72000 24000 -- 0.19099 0.51060 -- arrayprint.py:829:recurser (recurser) +++ __call__ -- 48000 48000 -- 0.09923 0.15462 -- arrayprint.py:1065:__call__ (__call__) <built-in method numpy._c...math.dragon4_positional> -- 48000 48000 -- 0.05539 0.05539 -- ~:0:<built-in method numpy._core._multiarray_umath.dragon4_positional> (<built-in method numpy._core._multiarray_umath.dragon4_positional>) +++ <method 'rstrip' of 'str' objects> -- 28000 28000 -- 0.00481 0.00481 -- ~:0:<method 'rstrip' of 'str' objects> (<method 'rstrip' of 'str' objects>) <built-in method builtins.len> -- 180000 180000 -- 0.01880 0.01880 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <built-in method builtins.max> -- 24000 24000 -- 0.00769 0.00769 -- ~:0:<built-in method builtins.max> (<built-in method builtins.max>) +++_wrapreduction -- 8000 8000 -- 0.01772 0.05818 -- fromnumeric.py:69:_wrapreduction (_wrapreduction) <dictcomp> -- 8000 8000 -- 0.00587 0.00587 -- fromnumeric.py:70:<dictcomp> (<dictcomp>) <method 'items' of 'dict' objects> -- 8000 8000 -- 0.00153 0.00153 -- ~:0:<method 'items' of 'dict' objects> (<method 'items' of 'dict' objects>) +++ <method 'reduce' of 'numpy.ufunc' objects> -- 8000 8000 -- 0.03307 0.03307 -- ~:0:<method 'reduce' of 'numpy.ufunc' objects> (<method 'reduce' of 'numpy.ufunc' objects>) +++var -- 2000 2000 -- 0.00250 0.02229 -- npx_core_api.py:54:var (var) __init__ -- 2000 2000 -- 0.01426 0.01978 -- npx_var.py:287:__init__ (__init__) +++info -- 5000 5000 -- 0.03017 1.45736 -- npx_jit_eager.py:52:info (info) debug -- 4000 4000 -- 0.00301 0.00505 -- __init__.py:1455:debug (debug) isEnabledFor -- 4000 4000 -- 0.00203 0.00203 -- __init__.py:1724:isEnabledFor (isEnabledFor) +++ info -- 4000 4000 -- 0.00244 0.00411 -- __init__.py:1467:info (info) isEnabledFor -- 4000 4000 -- 0.00167 0.00167 -- __init__.py:1724:isEnabledFor (isEnabledFor) +++ __repr__ -- 4000 4000 -- 0.01911 1.41651 -- ort_tensors.py:165:__repr__ (__repr__) _array_repr_implementation -- 4000 4000 -- 0.03160 1.38529 -- arrayprint.py:1561:_array_repr_implementation (_array_repr_implementation) array2string -- 4000 4000 -- 0.02033 1.25291 -- arrayprint.py:595:array2string (array2string) _make_options_dict -- 4000 4000 -- 0.01946 0.03471 -- arrayprint.py:50:_make_options_dict (_make_options_dict) <dictcomp> -- 4000 4000 -- 0.00670 0.00670 -- arrayprint.py:59:<dictcomp> (<dictcomp>) <method 'items' of 'dict' objects> -- 4000 4000 -- 0.00110 0.00110 -- ~:0:<method 'items' of 'dict' objects> (<method 'items' of 'dict' objects>) +++ <built-in method builtins.locals> -- 4000 4000 -- 0.00745 0.00745 -- ~:0:<built-in method builtins.locals> (<built-in method builtins.locals>) wrapper -- 4000 4000 -- 0.01575 1.19308 -- arrayprint.py:540:wrapper (wrapper) _array2string -- 4000 4000 -- 0.03199 1.17140 -- arrayprint.py:557:_array2string (_array2string) _leading_trailing -- 4000 4000 -- 0.03837 0.07644 -- arrayprint.py:398:_leading_trailing (_leading_trailing) +++ _get_format_function -- 4000 4000 -- 0.02254 0.49635 -- arrayprint.py:486:_get_format_function (_get_format_function) _get_formatdict -- 4000 4000 -- 0.01089 0.01089 -- arrayprint.py:436:_get_formatdict (_get_formatdict) <lambda> -- 4000 4000 -- 0.00700 0.46043 -- arrayprint.py:445:<lambda> (<lambda>) __init__ -- 4000 4000 -- 0.01579 0.45343 -- arrayprint.py:953:__init__ (__init__) _none_or_positive_arg -- 4000 4000 -- 0.00166 0.00166 -- arrayprint.py:944:_none_or_positive_arg (_none_or_positive_arg) fillFormat -- 4000 4000 -- 0.13107 0.43510 -- arrayprint.py:979:fillFormat (fillFormat) __init__ -- 4000 4000 -- 0.00449 0.00449 -- _ufunc_config.py:431:__init__ (__init__) __enter__ -- 4000 4000 -- 0.00728 0.01510 -- _ufunc_config.py:441:__enter__ (__enter__) <method...jects> -- 4000 4000 -- 0.00384 0.00384 -- ~:0:<method 'set' of '_contextvars.ContextVar' objects> (<method 'set' of '_contextvars.ContextVar' objects>) <built-...xtobj> -- 4000 4000 -- 0.00398 0.00398 -- ~:0:<built-in method numpy._core._multiarray_umath._make_extobj> (<built-in method numpy._core._multiarray_umath._make_extobj>) __exit__ -- 4000 4000 -- 0.00313 0.00664 -- _ufunc_config.py:457:__exit__ (__exit__) <method...jects> -- 4000 4000 -- 0.00352 0.00352 -- ~:0:<method 'reset' of '_contextvars.ContextVar' objects> (<method 'reset' of '_contextvars.ContextVar' objects>) <genexpr> -- 52000 52000 -- 0.03463 0.14049 -- arrayprint.py:1034:<genexpr> (<genexpr>) <genexpr> -- 52000 52000 -- 0.04079 0.09334 -- arrayprint.py:1029:<genexpr> (<genexpr>) <buil...nal> -- 48000 48000 -- 0.05255 0.05255 -- ~:0:<built-in method numpy._core._multiarray_umath.dragon4_positional> (<built-in method numpy._core._multiarray_umath.dragon4_positional>) +++ <method...jects> -- 48000 48000 -- 0.01252 0.01252 -- ~:0:<method 'split' of 'str' objects> (<method 'split' of 'str' objects>) _max_dispatcher -- 4000 4000 -- 0.00135 0.00135 -- fromnumeric.py:3075:_max_dispatcher (_max_dispatcher) max -- 4000 4000 -- 0.00766 0.04619 -- fromnumeric.py:3080:max (max) _wrapreduction -- 4000 4000 -- 0.01088 0.03853 -- fromnumeric.py:69:_wrapreduction (_wrapreduction) +++ _min_dispatcher -- 4000 4000 -- 0.00104 0.00104 -- fromnumeric.py:3220:_min_dispatcher (_min_dispatcher) min -- 4000 4000 -- 0.00498 0.02464 -- fromnumeric.py:3225:min (min) _wrapreduction -- 4000 4000 -- 0.00685 0.01966 -- fromnumeric.py:69:_wrapreduction (_wrapreduction) +++ <built-in...ins.len> -- 8000 8000 -- 0.00173 0.00173 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <built-in...ins.max> -- 8000 8000 -- 0.02270 0.06235 -- ~:0:<built-in method builtins.max> (<built-in method builtins.max>) +++ <built-in m...sinstance> -- 4000 4000 -- 0.00087 0.00087 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in metho...ns.issubclass> -- 16000 16000 -- 0.00249 0.00249 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ _formatArray -- 4000 4000 -- 0.00693 0.56488 -- arrayprint.py:820:_formatArray (_formatArray) recurser -- 4000 4000 -- 0.04493 0.55795 -- arrayprint.py:829:recurser (recurser) +++ <built-in method builtins.len> -- 4000 4000 -- 0.00044 0.00044 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <built-in method numpy.asarray> -- 4000 4000 -- 0.00130 0.00130 -- ~:0:<built-in method numpy.asarray> (<built-in method numpy.asarray>) <method 'add' of 'set' objects> -- 4000 4000 -- 0.00141 0.00141 -- ~:0:<method 'add' of 'set' objects> (<method 'add' of 'set' objects>) <method 'discard' of 'set' objects> -- 4000 4000 -- 0.00180 0.00180 -- ~:0:<method 'discard' of 'set' objects> (<method 'discard' of 'set' objects>) <built-in method builtins.id> -- 4000 4000 -- 0.00146 0.00146 -- ~:0:<built-in method builtins.id> (<built-in method builtins.id>) <built-in method _thread.get_ident> -- 4000 4000 -- 0.00125 0.00125 -- ~:0:<built-in method _thread.get_ident> (<built-in method _thread.get_ident>) <method 'get' of '_co...ContextVar' objects> -- 4000 4000 -- 0.00071 0.00071 -- ~:0:<method 'get' of '_contextvars.ContextVar' objects> (<method 'get' of '_contextvars.ContextVar' objects>) +++ <method 'update' of 'dict' objects> -- 4000 4000 -- 0.00180 0.00180 -- ~:0:<method 'update' of 'dict' objects> (<method 'update' of 'dict' objects>) <method 'copy' of 'dict' objects> -- 4000 4000 -- 0.00165 0.00165 -- ~:0:<method 'copy' of 'dict' objects> (<method 'copy' of 'dict' objects>) <built-in method builtins.len> -- 4000 4000 -- 0.00064 0.00064 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ dtype_is_implied -- 4000 4000 -- 0.00964 0.01032 -- arrayprint.py:1487:dtype_is_implied (dtype_is_implied) <method 'get' of '_co...ContextVar' objects> -- 4000 4000 -- 0.00068 0.00068 -- ~:0:<method 'get' of '_contextvars.ContextVar' objects> (<method 'get' of '_contextvars.ContextVar' objects>) +++ dtype_short_repr -- 4000 4000 -- 0.02942 0.08308 -- arrayprint.py:1529:dtype_short_repr (dtype_short_repr) _name_get -- 4000 4000 -- 0.01635 0.05022 -- _dtype.py:350:_name_get (_name_get) _kind_name -- 4000 4000 -- 0.00311 0.00311 -- _dtype.py:24:_kind_name (_kind_name) _name_includes_bit_suffix -- 4000 4000 -- 0.00681 0.02530 -- _dtype.py:334:_name_includes_bit_suffix (_name_includes_bit_suffix) issubdtype -- 4000 4000 -- 0.00773 0.01849 -- numerictypes.py:471:issubdtype (issubdtype) issubclass_ -- 8000 8000 -- 0.00725 0.01022 -- numerictypes.py:289:issubclass_ (issubclass_) <built-in met....issubclass> -- 8000 8000 -- 0.00297 0.00297 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ <built-in metho...ns.issubclass> -- 4000 4000 -- 0.00054 0.00054 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ <method 'format' of 'str' objects> -- 4000 4000 -- 0.00483 0.00483 -- ~:0:<method 'format' of 'str' objects> (<method 'format' of 'str' objects>) +++ <built-in method builtins.issubclass> -- 4000 4000 -- 0.00063 0.00063 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ <method 'isalpha' of 'str' objects> -- 4000 4000 -- 0.00116 0.00116 -- ~:0:<method 'isalpha' of 'str' objects> (<method 'isalpha' of 'str' objects>) <method 'isalnum' of 'str' objects> -- 4000 4000 -- 0.00134 0.00134 -- ~:0:<method 'isalnum' of 'str' objects> (<method 'isalnum' of 'str' objects>) <built-in method builtins.issubclass> -- 4000 4000 -- 0.00094 0.00094 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ <method 'rfind' of 'str' objects> -- 4000 4000 -- 0.00184 0.00184 -- ~:0:<method 'rfind' of 'str' objects> (<method 'rfind' of 'str' objects>) <method 'format' of 'str' objects> -- 4000 4000 -- 0.00293 0.00293 -- ~:0:<method 'format' of 'str' objects> (<method 'format' of 'str' objects>) +++ <method 'get' of '_cont...s.ContextVar' objects> -- 4000 4000 -- 0.00141 0.00141 -- ~:0:<method 'get' of '_contextvars.ContextVar' objects> (<method 'get' of '_contextvars.ContextVar' objects>) +++ <built-in method builtins.len> -- 8000 8000 -- 0.00120 0.00120 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ numpy -- 4000 4000 -- 0.01211 0.01211 -- ort_tensors.py:61:numpy (numpy) <method 'get' of 'dict' objects> -- 2000 2000 -- 0.00065 0.00065 -- ~:0:<method 'get' of 'dict' objects> (<method 'get' of 'dict' objects>) <built-in method builtins.len> -- 4000 4000 -- 0.00087 0.00087 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++get_cst_var -- 2000 2000 -- 0.00467 0.00656 -- npx_var.py:216:get_cst_var (get_cst_var) parent -- 2000 2000 -- 0.00139 0.00189 -- <frozen importlib._bootstrap>:404:parent (parent) <method 'rpartition' of 'str' objects> -- 2000 2000 -- 0.00050 0.00050 -- ~:0:<method 'rpartition' of 'str' objects> (<method 'rpartition' of 'str' objects>)__init__ -- 3000 3000 -- 0.02318 0.03204 -- npx_var.py:287:__init__ (__init__) __init__ -- 3000 3000 -- 0.00084 0.00084 -- npx_var.py:281:__init__ (__init__) <listcomp> -- 3000 3000 -- 0.00090 0.00090 -- npx_var.py:345:<listcomp> (<listcomp>) self_var -- 2000 2000 -- 0.00079 0.00106 -- npx_var.py:375:self_var (self_var) +++ <method 'items' of 'dict' objects> -- 3000 3000 -- 0.00042 0.00042 -- ~:0:<method 'items' of 'dict' objects> (<method 'items' of 'dict' objects>) +++ <built-in method builtins.hasattr> -- 3000 3000 -- 0.00047 0.00047 -- ~:0:<built-in method builtins.hasattr> (<built-in method builtins.hasattr>) +++ <built-in method builtins.isinstance> -- 23000 23000 -- 0.00385 0.00385 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in method builtins.len> -- 6000 6000 -- 0.00095 0.00095 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <method 'ravel' of 'numpy.ndarray' objects> -- 1000 1000 -- 0.00039 0.00039 -- ~:0:<method 'ravel' of 'numpy.ndarray' objects> (<method 'ravel' of 'numpy.ndarray' objects>)self_var -- 4000 4000 -- 0.00171 0.00235 -- npx_var.py:375:self_var (self_var) <built-in method builtins.hasattr> -- 4000 4000 -- 0.00064 0.00064 -- ~:0:<built-in method builtins.hasattr> (<built-in method builtins.hasattr>) +++__init__ -- 3000 3000 -- 0.00461 0.00710 -- ort_tensors.py:144:__init__ (__init__) <built-in method builtins.isinstance> -- 5000 5000 -- 0.00249 0.00249 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++value -- 3000 3000 -- 0.00094 0.00094 -- ort_tensors.py:192:value (value)loop -- 1 1 -- 0.00000 2.50002 -- plot_onnxruntime.py:66:loop (loop) loop_ort -- 1 1 -- 0.00580 2.26451 -- plot_onnxruntime.py:56:loop_ort (loop_ort) __call__ -- 1000 1000 -- 0.00612 2.25871 -- npx_jit_eager.py:584:__call__ (__call__) info -- 2000 2000 -- 0.00589 0.00811 -- npx_jit_eager.py:52:info (info) +++ cast_to_tensor_class -- 1000 1000 -- 0.00460 0.00938 -- npx_jit_eager.py:394:cast_to_tensor_class (cast_to_tensor_class) __init__ -- 2000 2000 -- 0.00228 0.00426 -- ort_tensors.py:144:__init__ (__init__) +++ <method 'append' of 'list' objects> -- 2000 2000 -- 0.00052 0.00052 -- ~:0:<method 'append' of 'list' objects> (<method 'append' of 'list' objects>) +++ cast_from_tensor_class -- 1000 1000 -- 0.00273 0.00393 -- npx_jit_eager.py:411:cast_from_tensor_class (cast_from_tensor_class) value -- 1000 1000 -- 0.00034 0.00034 -- ort_tensors.py:192:value (value) +++ <built-in method builtins.isinstance> -- 1000 1000 -- 0.00063 0.00063 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in method builtins.len> -- 1000 1000 -- 0.00023 0.00023 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ jit_call -- 1000 1000 -- 0.01538 2.23115 -- npx_jit_eager.py:462:jit_call (jit_call) info -- 3000 3000 -- 0.02428 1.44925 -- npx_jit_eager.py:52:info (info) +++ make_key -- 1000 1000 -- 0.00657 0.02072 -- npx_jit_eager.py:151:make_key (make_key) key -- 2000 2000 -- 0.00285 0.01268 -- ort_tensors.py:187:key (key) shape -- 2000 2000 -- 0.00240 0.00240 -- ort_tensors.py:177:shape (shape) dtype -- 2000 2000 -- 0.00442 0.00708 -- ort_tensors.py:182:dtype (dtype) __init__ -- 2000 2000 -- 0.00193 0.00266 -- npx_types.py:29:__init__ (__init__) <built-in met....isinstance> -- 4000 4000 -- 0.00072 0.00072 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in method builtins.len> -- 2000 2000 -- 0.00035 0.00035 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <method 'append' of 'list' objects> -- 2000 2000 -- 0.00043 0.00043 -- ~:0:<method 'append' of 'list' objects> (<method 'append' of 'list' objects>) +++ <built-in method builtins.isinstance> -- 2000 2000 -- 0.00104 0.00104 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ move_input_to_kwargs -- 1000 1000 -- 0.00084 0.00084 -- npx_jit_eager.py:426:move_input_to_kwargs (move_input_to_kwargs) __hash__ -- 4000 4000 -- 0.00096 0.00096 -- npx_types.py:45:__hash__ (__hash__) __eq__ -- 4000 4000 -- 0.00172 0.00172 -- npx_types.py:56:__eq__ (__eq__) run -- 1000 1000 -- 0.73854 0.74230 -- ort_tensors.py:124:run (run) __init__ -- 1000 1000 -- 0.00233 0.00283 -- ort_tensors.py:144:__init__ (__init__) +++ value -- 2000 2000 -- 0.00060 0.00060 -- ort_tensors.py:192:value (value) +++ <built-in method builtins.len> -- 2000 2000 -- 0.00033 0.00033 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ loop_numpy -- 1 1 -- 0.00061 0.23550 -- plot_onnxruntime.py:61:loop_numpy (loop_numpy) myloss -- 1000 1000 -- 0.00301 0.23489 -- plot_onnxruntime.py:28:myloss (myloss) __add__ -- 1000 1000 -- 0.00062 0.02115 -- npx_var.py:645:__add__ (__add__) _binary_op -- 1000 1000 -- 0.00341 0.02053 -- npx_var.py:615:_binary_op (_binary_op) var -- 1000 1000 -- 0.00145 0.01276 -- npx_core_api.py:54:var (var) +++ get_cst_var -- 1000 1000 -- 0.00233 0.00336 -- npx_var.py:216:get_cst_var (get_cst_var) +++ self_var -- 1000 1000 -- 0.00045 0.00064 -- npx_var.py:375:self_var (self_var) +++ <built-in method builtins.isinstance> -- 1000 1000 -- 0.00037 0.00037 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ l1_loss -- 1000 1000 -- 0.01209 0.18592 -- plot_onnxruntime.py:20:l1_loss (l1_loss) wrapper -- 1000 1000 -- 0.14128 0.15795 -- npx_core_api.py:142:wrapper (wrapper) annotation -- 1000 1000 -- 0.00017 0.00017 -- inspect.py:2695:annotation (annotation) kind -- 2000 2000 -- 0.00033 0.00033 -- inspect.py:2699:kind (kind) parameters -- 2000 2000 -- 0.00053 0.00053 -- inspect.py:3006:parameters (parameters) return_annotation -- 1000 1000 -- 0.00017 0.00017 -- inspect.py:3010:return_annotation (return_annotation) __init__ -- 1000 1000 -- 0.00891 0.01225 -- npx_var.py:287:__init__ (__init__) +++ <method 'items' of ...ingproxy' objects> -- 1000 1000 -- 0.00031 0.00031 -- ~:0:<method 'items' of 'mappingproxy' objects> (<method 'items' of 'mappingproxy' objects>) <method 'items' of 'dict' objects> -- 1000 1000 -- 0.00015 0.00015 -- ~:0:<method 'items' of 'dict' objects> (<method 'items' of 'dict' objects>) +++ <method 'append' of 'list' objects> -- 1000 1000 -- 0.00020 0.00020 -- ~:0:<method 'append' of 'list' objects> (<method 'append' of 'list' objects>) +++ <built-in method builtins.any> -- 1000 1000 -- 0.00069 0.00170 -- ~:0:<built-in method builtins.any> (<built-in method builtins.any>) <genexpr> -- 2000 2000 -- 0.00081 0.00101 -- npx_core_api.py:143:<genexpr> (<genexpr>) <built-in metho...ns.isinstance> -- 1000 1000 -- 0.00020 0.00020 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in method builtins.isinstance> -- 2000 2000 -- 0.00035 0.00035 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>) +++ <built-in method builtins.issubclass> -- 2000 2000 -- 0.00035 0.00035 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>) +++ <built-in method builtins.len> -- 1000 1000 -- 0.00016 0.00016 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ sum -- 1000 1000 -- 0.00086 0.01588 -- npx_var.py:890:sum (sum) reduce_function -- 1000 1000 -- 0.00164 0.01502 -- npx_var.py:871:reduce_function (reduce_function) var -- 1000 1000 -- 0.00105 0.00953 -- npx_core_api.py:54:var (var) +++ get_cst_var -- 1000 1000 -- 0.00234 0.00320 -- npx_var.py:216:get_cst_var (get_cst_var) +++ self_var -- 1000 1000 -- 0.00047 0.00065 -- npx_var.py:375:self_var (self_var) +++ l2_loss -- 1000 1000 -- 0.01669 0.02480 -- plot_onnxruntime.py:24:l2_loss (l2_loss) <method 'sum' of 'numpy.ndarray' objects> -- 1000 1000 -- 0.00060 0.00811 -- ~:0:<method 'sum' of 'numpy.ndarray' objects> (<method 'sum' of 'numpy.ndarray' objects>) _sum -- 1000 1000 -- 0.00059 0.00750 -- _methods.py:51:_sum (_sum) <method 'reduce' ....ufunc' objects> -- 1000 1000 -- 0.00691 0.00691 -- ~:0:<method 'reduce' of 'numpy.ufunc' objects> (<method 'reduce' of 'numpy.ufunc' objects>) +++<built-in method builtins.len> -- 576000 576000 -- 0.06291 0.06291 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>)<method 'append' of 'list' objects> -- 5000 5000 -- 0.00115 0.00115 -- ~:0:<method 'append' of 'list' objects> (<method 'append' of 'list' objects>)<built-in method builtins.isinstance> -- 59000 59000 -- 0.01379 0.01379 -- ~:0:<built-in method builtins.isinstance> (<built-in method builtins.isinstance>)<method 'items' of 'dict' objects> -- 16000 16000 -- 0.00319 0.00319 -- ~:0:<method 'items' of 'dict' objects> (<method 'items' of 'dict' objects>)<built-in method builtins.issubclass> -- 38000 38000 -- 0.00793 0.00793 -- ~:0:<built-in method builtins.issubclass> (<built-in method builtins.issubclass>)<method 'format' of 'str' objects> -- 8000 8000 -- 0.00776 0.00776 -- ~:0:<method 'format' of 'str' objects> (<method 'format' of 'str' objects>)<method 'get' of '_contextvars.ContextVar' objects> -- 12000 12000 -- 0.00280 0.00280 -- ~:0:<method 'get' of '_contextvars.ContextVar' objects> (<method 'get' of '_contextvars.ContextVar' objects>)<built-in method builtins.hasattr> -- 7000 7000 -- 0.00110 0.00110 -- ~:0:<built-in method builtins.hasattr> (<built-in method builtins.hasattr>)<method 'reduce' of 'numpy.ufunc' objects> -- 9000 9000 -- 0.03998 0.03998 -- ~:0:<method 'reduce' of 'numpy.ufunc' objects> (<method 'reduce' of 'numpy.ufunc' objects>)<built-in method builtins.max> -- 32000 32000 -- 0.03039 0.07004 -- ~:0:<built-in method builtins.max> (<built-in method builtins.max>) <genexpr> -- 52000 52000 -- 0.01578 0.02168 -- arrayprint.py:1038:<genexpr> (<genexpr>) <built-in method builtins.len> -- 48000 48000 -- 0.00590 0.00590 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++ <genexpr> -- 52000 52000 -- 0.01320 0.01798 -- arrayprint.py:1039:<genexpr> (<genexpr>) <built-in method builtins.len> -- 48000 48000 -- 0.00477 0.00477 -- ~:0:<built-in method builtins.len> (<built-in method builtins.len>) +++<built-in method numpy._core....ay_umath.dragon4_positional> -- 96000 96000 -- 0.10794 0.10794 -- ~:0:<built-in method numpy._core._multiarray_umath.dragon4_positional> (<built-in method numpy._core._multiarray_umath.dragon4_positional>)
frompandasimportDataFramefromtqdmimporttqdmfromonnx_array_api.ext_test_caseimportmeasure_timedata=[]fornintqdm([1,10,100,1000,10000,100000]):x=np.random.randn(n,2).astype(np.float32)y=np.random.randn(n,2).astype(np.float32)obs=measure_time(lambdax=x,y=y:myloss(x,y))obs["name"]="numpy"obs["n"]=ndata.append(obs)xort=OrtTensor.from_array(x)yort=OrtTensor.from_array(y)obs=measure_time(lambdaxort=xort,yort=yort:ort_myloss(xort,yort))obs["name"]="ort"obs["n"]=ndata.append(obs)df=DataFrame(data)piv=df.pivot(index="n",columns="name",values="average")piv
0%| | 0/6 [00:00<?, ?it/s] 17%|█▋ | 1/6 [00:00<00:02, 1.86it/s] 33%|███▎ | 2/6 [00:01<00:02, 1.44it/s] 50%|█████ | 3/6 [00:04<00:05, 1.82s/it] 67%|██████▋ | 4/6 [00:05<00:02, 1.42s/it] 83%|████████▎ | 5/6 [00:06<00:01, 1.20s/it]100%|██████████| 6/6 [00:07<00:00, 1.16s/it]100%|██████████| 6/6 [00:07<00:00, 1.20s/it]
| name | numpy | ort |
|---|---|---|
| n | ||
| 1 | 0.000023 | 0.001046 |
| 10 | 0.000028 | 0.001576 |
| 100 | 0.000030 | 0.006304 |
| 1000 | 0.000025 | 0.001563 |
| 10000 | 0.000051 | 0.001589 |
| 100000 | 0.000444 | 0.001690 |

Total running time of the script: (0 minutes 17.941 seconds)