From 119bbca270e0920cc3526c1da1e9340c9271d5ae Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <maltanar@gmail.com> Date: Wed, 19 Feb 2020 23:13:25 +0000 Subject: [PATCH] [Wrapper] remove unused set_attribute from ModelWrapper we use the CustomOp attribute setters for most cases instead --- src/finn/core/modelwrapper.py | 38 ----------------------- tests/test_set_attribute.py | 57 ----------------------------------- 2 files changed, 95 deletions(-) delete mode 100644 tests/test_set_attribute.py diff --git a/src/finn/core/modelwrapper.py b/src/finn/core/modelwrapper.py index 473a33c47..e82b2e827 100644 --- a/src/finn/core/modelwrapper.py +++ b/src/finn/core/modelwrapper.py @@ -317,41 +317,3 @@ class ModelWrapper: self.model.metadata_props.append(metadata_prop) else: metadata_prop.value = value - - def set_attribute(self, node, attribute_name, value): - """Sets a custom node attribute of given name with given value""" - """Data types of attributes in onnx are encoded: - 2 : integer - 3 : string - so in the beginning a dictionary is introduced with the keys - to this encryption""" - # TO DO: Add additional encryption (i.e. float) - data_type_dict = {} - data_type_dict["string"] = 3 - data_type_dict["int"] = 2 - - attribute = util.get_by_name(node.attribute, attribute_name) - # check if attribute is integer - # For encryption see data_type_dict - if attribute.type == data_type_dict["int"]: - if type(value) is int: - attribute.i = value - else: - raise ValueError( - "Attribute expects integer! {} is of type {}!".format( - value, type(value) - ) - ) - elif attribute.type == data_type_dict["string"]: - if type(value) is str: - attribute.s = value.encode("UTF-8") - else: - raise ValueError( - "Attribute expects string! {} is of type {}!".format( - value, type(value) - ) - ) - else: - raise Exception("This datatype is not supported, please add to encryption") - - return attribute diff --git a/tests/test_set_attribute.py b/tests/test_set_attribute.py deleted file mode 100644 index 50e379194..000000000 --- a/tests/test_set_attribute.py +++ /dev/null @@ -1,57 +0,0 @@ -from onnx import TensorProto, helper - -from finn.core.datatype import DataType -from finn.core.modelwrapper import ModelWrapper -from finn.util.basic import get_by_name - - -def test_set_attribute(): - mw = 8 - mh = 8 - pe = 4 - simd = 4 - idt = odt = wdt = DataType.BIPOLAR - - inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, mw]) - outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, [1, mh]) - node_inp_list = ["inp", "weights"] - - FCLayer_node = helper.make_node( - "StreamingFCLayer_Batch", - node_inp_list, - ["outp"], - domain="finn", - backend="", - code_gen_dir="", - executable_path="", - resType="ap_resource_lut()", - MW=0, - MH=mh, - SIMD=simd, - PE=pe, - inputDataType=idt.name, - weightDataType=wdt.name, - outputDataType=odt.name, - ) - graph = helper.make_graph( - nodes=[FCLayer_node], name="fclayer_graph", inputs=[inp], outputs=[outp] - ) - - model = helper.make_model(graph, producer_name="fclayer-model") - model = ModelWrapper(model) - - # test cases - value_to_set = "fpgadataflow" - model.set_attribute(FCLayer_node, "backend", value_to_set) - value = get_by_name(FCLayer_node.attribute, "backend") - assert value.s.decode("UTF-8") == value_to_set - - value_to_set = mw - model.set_attribute(FCLayer_node, "MW", value_to_set) - value = get_by_name(FCLayer_node.attribute, "MW") - assert value.i == value_to_set - - value_to_set = idt.name - model.set_attribute(FCLayer_node, "inputDataType", value_to_set) - value = get_by_name(FCLayer_node.attribute, "inputDataType") - assert value.s.decode("UTF-8") == value_to_set -- GitLab