當前位置: 首頁>>代碼示例>>Python>>正文


Python helper.make_attribute方法代碼示例

本文整理匯總了Python中onnx.helper.make_attribute方法的典型用法代碼示例。如果您正苦於以下問題:Python helper.make_attribute方法的具體用法?Python helper.make_attribute怎麽用?Python helper.make_attribute使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在onnx.helper的用法示例。


在下文中一共展示了helper.make_attribute方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: set_nodeattr

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def set_nodeattr(self, name, value):
        """Set a node attribute by name. Data is stored inside the ONNX node's
        AttributeProto container. Attribute must be part of get_nodeattr_types."""
        try:
            (dtype, req, def_val) = self.get_nodeattr_types()[name]
            attr = get_by_name(self.onnx_node.attribute, name)
            if attr is not None:
                # dtype indicates which ONNX Attribute member to use
                # (such as i, f, s...)
                if dtype == "s":
                    # encode string attributes
                    value = value.encode("utf-8")
                attr.__setattr__(dtype, value)
            else:
                # not set, create and insert AttributeProto
                attr_proto = helper.make_attribute(name, value)
                self.onnx_node.attribute.append(attr_proto)
        except KeyError:
            raise AttributeError("Op has no such attribute: " + name) 
開發者ID:Xilinx,項目名稱:finn,代碼行數:21,代碼來源:__init__.py

示例2: test_attr_int

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_int(self):  # type: () -> None
        # integer
        attr = helper.make_attribute("int", 3)
        self.assertEqual(attr.name, "int")
        self.assertEqual(attr.i, 3)
        checker.check_attribute(attr)
        # long integer
        attr = helper.make_attribute("int", 5)
        self.assertEqual(attr.name, "int")
        self.assertEqual(attr.i, 5)
        checker.check_attribute(attr)
        # octinteger
        attr = helper.make_attribute("int", 0o1701)
        self.assertEqual(attr.name, "int")
        self.assertEqual(attr.i, 0o1701)
        checker.check_attribute(attr)
        # hexinteger
        attr = helper.make_attribute("int", 0x1701)
        self.assertEqual(attr.name, "int")
        self.assertEqual(attr.i, 0x1701)
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:23,代碼來源:helper_test.py

示例3: test_attr_string

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_string(self):  # type: () -> None
        # bytes
        attr = helper.make_attribute("str", b"test")
        self.assertEqual(attr.name, "str")
        self.assertEqual(attr.s, b"test")
        checker.check_attribute(attr)
        # unspecified
        attr = helper.make_attribute("str", "test")
        self.assertEqual(attr.name, "str")
        self.assertEqual(attr.s, b"test")
        checker.check_attribute(attr)
        # unicode
        attr = helper.make_attribute("str", u"test")
        self.assertEqual(attr.name, "str")
        self.assertEqual(attr.s, b"test")
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:18,代碼來源:helper_test.py

示例4: test_attr_repeated_tensor_proto

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_repeated_tensor_proto(self):  # type: () -> None
        tensors = [
            helper.make_tensor(
                name='a',
                data_type=TensorProto.FLOAT,
                dims=(1,),
                vals=np.ones(1).tolist()
            ),
            helper.make_tensor(
                name='b',
                data_type=TensorProto.FLOAT,
                dims=(1,),
                vals=np.ones(1).tolist()
            )]
        attr = helper.make_attribute("tensors", tensors)
        self.assertEqual(attr.name, "tensors")
        self.assertEqual(list(attr.tensors), tensors)
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:20,代碼來源:helper_test.py

示例5: add_attribute

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def add_attribute(node_proto, name, value):
    """Add a new attribute into the node proto."""
    node_proto.attribute.extend([make_attribute(name, value)]) 
開發者ID:seetaresearch,項目名稱:dragon,代碼行數:5,代碼來源:helper.py

示例6: test_attr_float

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_float(self):  # type: () -> None
        # float
        attr = helper.make_attribute("float", 1.)
        self.assertEqual(attr.name, "float")
        self.assertEqual(attr.f, 1.)
        checker.check_attribute(attr)
        # float with scientific
        attr = helper.make_attribute("float", 1e10)
        self.assertEqual(attr.name, "float")
        self.assertEqual(attr.f, 1e10)
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:13,代碼來源:helper_test.py

示例7: test_attr_doc_string

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_doc_string(self):  # type: () -> None
        attr = helper.make_attribute("a", "value")
        self.assertEqual(attr.name, "a")
        self.assertEqual(attr.doc_string, "")
        attr = helper.make_attribute("a", "value", "doc")
        self.assertEqual(attr.name, "a")
        self.assertEqual(attr.doc_string, "doc") 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:9,代碼來源:helper_test.py

示例8: test_attr_repeated_float

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_repeated_float(self):  # type: () -> None
        attr = helper.make_attribute("floats", [1.0, 2.0])
        self.assertEqual(attr.name, "floats")
        self.assertEqual(list(attr.floats), [1.0, 2.0])
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:7,代碼來源:helper_test.py

示例9: test_attr_repeated_str

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_repeated_str(self):  # type: () -> None
        attr = helper.make_attribute("strings", ["str1", "str2"])
        self.assertEqual(attr.name, "strings")
        self.assertEqual(list(attr.strings), [b"str1", b"str2"])
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:7,代碼來源:helper_test.py

示例10: test_attr_repeated_graph_proto

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_attr_repeated_graph_proto(self):  # type: () -> None
        graphs = [GraphProto(), GraphProto()]
        graphs[0].name = "a"
        graphs[1].name = "b"
        attr = helper.make_attribute("graphs", graphs)
        self.assertEqual(attr.name, "graphs")
        self.assertEqual(list(attr.graphs), graphs)
        checker.check_attribute(attr) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:10,代碼來源:helper_test.py

示例11: test_node_with_arg

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def test_node_with_arg(self):  # type: () -> None
        self.assertTrue(defs.has("Relu"))
        # Note: Relu actually does not need an arg, but let's
        # test it.
        node_def = helper.make_node(
            "Relu", ["X"], ["Y"],
            arg_value=1)
        self.assertEqual(node_def.op_type, "Relu")
        self.assertEqual(list(node_def.input), ["X"])
        self.assertEqual(list(node_def.output), ["Y"])
        self.assertEqual(len(node_def.attribute), 1)
        self.assertEqual(
            node_def.attribute[0],
            helper.make_attribute("arg_value", 1)) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:16,代碼來源:helper_test.py

示例12: make_onnx

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def make_onnx(self):
        ''' Generate ONNX model from current graph '''
        self.clean_init()
        nodes = []
        for node in self.node:
            n = NodeProto()
            n.input.extend(node.input)
            n.output.extend(node.output)
            n.name = node.name
            n.op_type = node.op_type
            n.attribute.extend(
                helper.make_attribute(key, value)
                for key, value in sorted(node.attrs.items())
                )
            nodes.append(n)
        
        inputs = []
        initializer = []
        for k,v in self.tensor_dict.items():
            init = numpy_helper.from_array(v, name=k)
            initializer.append(init)
            value_info = helper.make_tensor_value_info(
                name=k,
                elem_type=mapping.NP_TYPE_TO_TENSOR_TYPE[v.dtype],
                shape=list(v.shape)
            )
            inputs.append(value_info)
        
        graph_ = helper.make_graph(
            nodes=nodes,
            name='dlpy_graph',
            inputs=inputs+self.uninitialized,
            outputs=self.output,
            initializer=initializer
        )

        model = helper.make_model(graph_)
        return model 
開發者ID:sassoftware,項目名稱:python-dlpy,代碼行數:40,代碼來源:onnx_graph.py

示例13: verify_pooling

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def verify_pooling(x_shape, kernel_shape, strides, pads, out_shape, mode, auto_pad="NOTSET"):
    x_np = np.random.uniform(size=x_shape).astype('float32')

    if mode == 'max':
        node_type = "MaxPool"
    elif mode == 'average':
        node_type = "AveragePool"
    else:
        raise ValueError("Pool method {} is not supported.".format(mode))

    pool_node = helper.make_node(
        node_type, inputs=["x"], outputs=["y"], kernel_shape=kernel_shape, strides=strides)

    if pads is None:
        pad_attr = helper.make_attribute('auto_pad', auto_pad)
    else:
        pad_attr = helper.make_attribute('pads', pads)
    pool_node.attribute.append(pad_attr)

    if mode == 'max':
        storage_attr = helper.make_attribute('storage_order', 0)
        pool_node.attribute.append(storage_attr)

    graph = helper.make_graph([pool_node],
                              "pooling_test",
                              inputs=[helper.make_tensor_value_info("x",
                                                                    TensorProto.FLOAT, list(x_shape))],
                              outputs=[helper.make_tensor_value_info("y",
                                                                     TensorProto.FLOAT, list(out_shape))])

    model = helper.make_model(graph, producer_name='pooling_test')

    for target, ctx in ctx_list():
        onnx_out = get_onnxruntime_output(model, x_np, 'float32')
        tvm_out = get_tvm_output(
            model, [x_np], target, ctx, out_shape)
        tvm.testing.assert_allclose(onnx_out, tvm_out, rtol=1e-5, atol=1e-5) 
開發者ID:apache,項目名稱:incubator-tvm,代碼行數:39,代碼來源:test_forward.py

示例14: generate

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def generate(self):
        updated = False
        if self.attributes:
            updated = True
        elif len([k for k, v in self.input.items() if k != v]) > 0:
            updated = True
        elif len([k for k, v in self.output.items() if k != v]) > 0:
            updated = True

        if not updated:
            return [self.origin]
        else:
            onode = onnx_proto.NodeProto()
            onode.name = self.origin.name
            onode.op_type = self.origin.op_type
            onode.input.extend([self.input.get(i_, i_) for i_ in self.origin.input])
            for input_ in self.initializers:
                if input_.name not in onode.input:
                    onode.input.append(input_.name)
            onode.output.extend([self.output.get(o_, o_) for o_ in self.origin.output])
            onode.doc_string = self.origin.doc_string
            onode.domain = self.origin.domain
            onode.attribute.extend(
                attr for attr in self.origin.attribute if attr.name not in self.attributes)
            onode.attribute.extend(
                helper.make_attribute(attr, self.attributes[attr]) for attr in self.attributes)

            return [onode] 
開發者ID:microsoft,項目名稱:onnxconverter-common,代碼行數:30,代碼來源:optimizer.py

示例15: const_folding_optimizer

# 需要導入模塊: from onnx import helper [as 別名]
# 或者: from onnx.helper import make_attribute [as 別名]
def const_folding_optimizer(graph, outer_graph=None):
    # type: (onnx.GraphProto, onnx.GraphProto)->onnx.GraphProto
    nodelist, reserved_names = reserve_node_for_embedded_graph(graph.node)
    opt_graph = OnnxGraphContext(graph, nodelist)
    node_status = {}
    for ts_ in graph.output:
        _dfs_calc(opt_graph, opt_graph.tensor_to_node[ts_.name], reserved_names, node_status)

    graph.initializer.extend([numpy_helper.from_array(ts_, nm_) for nm_, ts_ in opt_graph.variables.items()])
    new_nodes = [nd_ for nd_ in nodelist if nd_.name in node_status]
    new_nodes = [nd_ for nd_ in new_nodes if nd_.output[0] not in opt_graph.variables]

    def node_key(nd_):
        return abs(node_status[nd_.name])

    new_nodes.sort(key=node_key)
    pruned_initilizers = _remove_unused_initializers(new_nodes, graph.initializer, reserved_names,
                                                     None if outer_graph is None else outer_graph.initializer)
    del graph.node[:]
    graph.node.extend(new_nodes)
    del graph.initializer[:]
    graph.initializer.extend(pruned_initilizers)

    for nd_ in graph.node:
        for aname_, subgraph_ in OnnxGraphContext.get_attr_graph(nd_).items():
            opt_inner_graph = const_folding_optimizer(subgraph_, graph)
            lst_attrs = list(nd_.attribute)
            del nd_.attribute[:]
            lst_attrs = [helper.make_attribute(aname_, opt_inner_graph) if
                         attr.name == aname_ else attr for attr in lst_attrs]
            nd_.attribute.extend(lst_attrs)

    return graph 
開發者ID:microsoft,項目名稱:onnxconverter-common,代碼行數:35,代碼來源:_opt_const_folding.py


注:本文中的onnx.helper.make_attribute方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。