in mobile_cv/arch/utils/fuse_utils.py [0:0]
def _find_input_nodes(cur_node, nodes_to_remove):
"""Find all nodes that produces outputs as the input for cur_node"""
all_arg_users_in_to_remove = True
for arg in cur_node.all_input_nodes:
# Check uses, if all uses are to be removed, then
# this node can also be removed.
for arg_user_node in arg.users.keys():
if arg_user_node not in nodes_to_remove:
all_arg_users_in_to_remove = False
if all_arg_users_in_to_remove:
for arg in cur_node.all_input_nodes:
nodes_to_remove.add(arg)
for arg in cur_node.all_input_nodes:
_find_input_nodes(arg, nodes_to_remove)
else:
return