diff --git a/src/finn/core/onnx_exec.py b/src/finn/core/onnx_exec.py index 172ba25b223fd087df134add460a42d0a9935e0e..44787e1d26049e6075e2222316b45ab3898acbc7 100644 --- a/src/finn/core/onnx_exec.py +++ b/src/finn/core/onnx_exec.py @@ -38,6 +38,7 @@ from finn.core.modelwrapper import ModelWrapper from finn.core.remote_exec import remote_exec from finn.core.rtlsim_exec import rtlsim_exec from finn.custom_op.registry import getCustomOp +import finn.analysis.topology as ta def execute_node(node, context, graph): @@ -121,6 +122,11 @@ def execute_onnx(model, input_dict, return_full_exec_context=False): if not model.check_all_tensor_shapes_specified(): raise Exception("Found unspecified tensor shapes, try infer_shapes") + ret = model.analysis(ta.nodes_topologically_sorted) + assert ( + ret["nodes_topologically_sorted"] is True + ), """Nodes must be + topologically sorted.""" graph = model.graph # first, we need to make sure that every variable required by the graph has