MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / get_dep_vars

Function get_dep_vars

imperative/python/megengine/utils/comp_graph_tools.py:30–58  ·  view source on GitHub ↗

r"""Returns :class:`.tensor.core.megbrain_graph.VarNode` of type ``var_type`` that input ``var`` depands on. If ``var_type`` is None, returns all types.

(
    var: Union[_VarNode, List[_VarNode]], var_type: Union[str, List[str]] = None
)

Source from the content-addressed store, hash-verified

28
29
30def get_dep_vars(
31 var: Union[_VarNode, List[_VarNode]], var_type: Union[str, List[str]] = None
32) -> List[_VarNode]:
33 r"""Returns :class:`.tensor.core.megbrain_graph.VarNode` of type ``var_type`` that input ``var``
34 depands on. If ``var_type`` is None, returns all types.
35 """
36 outputs = []
37 memo = set()
38
39 if isinstance(var, _VarNode):
40 var = [var]
41
42 if isinstance(var_type, str):
43 var_type = [var_type]
44
45 q = list(var)
46 while q:
47 v = q.pop(0)
48 if v in memo:
49 continue
50 memo.add(v)
51 q.extend(get_owner_opr_inputs(v))
52 if var_type is not None:
53 if get_owner_opr_type(v) in var_type:
54 outputs.append(v)
55 else:
56 outputs.append(v)
57
58 return outputs
59
60
61def get_owner_opr_inputs(var: _VarNode) -> List[_VarNode]:

Callers 6

loadMethod · 0.85
all_varsMethod · 0.85
prune_reshape_oprsFunction · 0.85
find_vars_by_nameFunction · 0.85
convert_inputsFunction · 0.85
embed_inputsFunction · 0.85

Calls 5

listFunction · 0.85
get_owner_opr_inputsFunction · 0.85
get_owner_opr_typeFunction · 0.85
addMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected