From e4bb7c2df8deb4b0735f4867b746eb975260dba6 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Fri, 7 Feb 2020 18:30:03 +0100
Subject: [PATCH] [Refactor] move onnx-importing util to own file

---
 src/finn/core/modelwrapper.py |  7 ++++---
 src/finn/util/basic.py        | 10 ----------
 src/finn/util/onnx.py         | 11 +++++++++++
 3 files changed, 15 insertions(+), 13 deletions(-)
 create mode 100644 src/finn/util/onnx.py

diff --git a/src/finn/core/modelwrapper.py b/src/finn/core/modelwrapper.py
index 3b541b06e..1d5d3a978 100644
--- a/src/finn/core/modelwrapper.py
+++ b/src/finn/core/modelwrapper.py
@@ -6,6 +6,7 @@ import onnx.numpy_helper as np_helper
 from onnx import TensorProto
 
 import finn.util.basic as util
+import finn.util.onnx as onnxutil
 from finn.core.datatype import DataType
 
 
@@ -248,14 +249,14 @@ class ModelWrapper:
         graph = self._model_proto.graph
         # make empty tensors for all the graph inputs and outputs
         for vi in graph.input:
-            new_tensor = util.valueinfo_to_tensor(vi)
+            new_tensor = onnxutil.valueinfo_to_tensor(vi)
             execution_context[vi.name] = new_tensor
         for vi in graph.output:
-            new_tensor = util.valueinfo_to_tensor(vi)
+            new_tensor = onnxutil.valueinfo_to_tensor(vi)
             execution_context[vi.name] = new_tensor
         # make empty tensors for all intermediate buffers
         for vi in graph.value_info:
-            new_tensor = util.valueinfo_to_tensor(vi)
+            new_tensor = onnxutil.valueinfo_to_tensor(vi)
             execution_context[vi.name] = new_tensor
         # fill in the constants provided by the initializers (TensorProto to npy)
         for t in graph.initializer:
diff --git a/src/finn/util/basic.py b/src/finn/util/basic.py
index 44a44ae12..6fc357dcc 100644
--- a/src/finn/util/basic.py
+++ b/src/finn/util/basic.py
@@ -5,7 +5,6 @@ import subprocess
 import tempfile
 
 import numpy as np
-import onnx
 
 from finn.core.datatype import DataType
 
@@ -38,15 +37,6 @@ def make_build_dir(prefix=""):
         )
 
 
-def valueinfo_to_tensor(vi):
-    """Creates an all-zeroes numpy tensor from a ValueInfoProto."""
-
-    dims = [x.dim_value for x in vi.type.tensor_type.shape.dim]
-    return np.zeros(
-        dims, dtype=onnx.mapping.TENSOR_TYPE_TO_NP_TYPE[vi.type.tensor_type.elem_type]
-    )
-
-
 def get_by_name(container, name, name_field="name"):
     """Return item from container by .name field if it exists, None otherwise"""
     names = [getattr(x, name_field) for x in container]
diff --git a/src/finn/util/onnx.py b/src/finn/util/onnx.py
new file mode 100644
index 000000000..b49c3b223
--- /dev/null
+++ b/src/finn/util/onnx.py
@@ -0,0 +1,11 @@
+import numpy as np
+import onnx
+
+
+def valueinfo_to_tensor(vi):
+    """Creates an all-zeroes numpy tensor from a ValueInfoProto."""
+
+    dims = [x.dim_value for x in vi.type.tensor_type.shape.dim]
+    return np.zeros(
+        dims, dtype=onnx.mapping.TENSOR_TYPE_TO_NP_TYPE[vi.type.tensor_type.elem_type]
+    )
-- 
GitLab