Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2@file
3@brief Loads runtime operator.
4"""
7def load_op(onnx_node, desc=None, options=None, variables=None, dtype=None):
8 """
9 Sets up a class for a specific ONNX operator.
11 @param onnx_node :epkg:`onnx` node
12 @param desc internal representation
13 @param options runtime options
14 @param variables registered variables created by previous operators
15 @param dtype float computational type
16 @return runtime class
17 """
18 if desc is None:
19 raise ValueError( # pragma: no cover
20 "desc should not be None.")
21 if options is None:
22 provider = 'python' # pragma: no cover
23 else:
24 provider = options.get('provider', 'python')
25 if 'provider' in options:
26 options = options.copy()
27 del options['provider']
28 if provider == 'python':
29 from .ops_cpu import load_op as lo
30 return lo(onnx_node, desc=desc, options=options)
31 if provider == 'empty':
32 from .ops_empty import load_op as lo
33 return lo(onnx_node, desc=desc, options=options)
34 if provider == 'onnxruntime2':
35 from .ops_onnxruntime import load_op as lo
36 return lo(onnx_node, desc=desc, options=options, # pylint: disable=E1123
37 variables=variables, dtype=dtype)
38 raise ValueError("Unable to handle provider '{}'.".format(provider))