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


Python onnx.ValueInfoProto方法代碼示例

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


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

示例1: _extract_value_info

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _extract_value_info(arr, name):
    if isinstance(arr, list):
        assert arr
        assert not isinstance(arr[0], list)
        value_info_proto = onnx.ValueInfoProto()
        value_info_proto.name = name
        sequence_type_proto = value_info_proto.type.sequence_type
        nested = _extract_value_info(arr[0], name)
        tensor_type = sequence_type_proto.elem_type.tensor_type
        tensor_type.CopyFrom(nested.type.tensor_type)
        return value_info_proto
    else:
        return onnx.helper.make_tensor_value_info(
            name=name,
            elem_type=onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[arr.dtype],
            shape=arr.shape) 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:18,代碼來源:onnx_script.py

示例2: _assert_inferred

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _assert_inferred(self, graph, vis):  # type: (GraphProto, List[ValueInfoProto]) -> None
        names_in_vis = set(x.name for x in vis)
        vis = list(x for x in graph.value_info if x.name not in names_in_vis) + vis
        inferred_model = self._inferred(graph)
        inferred_vis = list(inferred_model.graph.value_info)
        vis = list(sorted(vis, key=lambda x: x.name))
        inferred_vis = list(sorted(inferred_vis, key=lambda x: x.name))
        if vis == inferred_vis:
            return
        # otherwise some custom logic to give a nicer diff
        vis_names = set(x.name for x in vis)
        inferred_vis_names = set(x.name for x in inferred_vis)
        assert vis_names == inferred_vis_names, (vis_names, inferred_vis_names)
        for vi, inferred_vi in zip(vis, inferred_vis):
            assert vi == inferred_vi, '\n%s\n%s\n' % (vi, inferred_vi)
        assert False 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:18,代碼來源:shape_inference_test.py

示例3: __init__

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def __init__(self, value):
        if isinstance(value, Value):
            self.const_value = value.const_value
            value = value.value
        else:
            self.const_value = None
        self.value = value
        self.is_py = not isinstance(self.value, onnx.ValueInfoProto)
        if not self.is_py:
            assert self.is_tensor() or self.is_sequence()
            assert not (self.is_tensor() and self.is_sequence()) 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:13,代碼來源:value.py

示例4: copy

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def copy(self, env: 'utils.Env', name=None) -> 'Value':
        self.to_value_info(env)
        vi = self.value
        nvi = onnx.ValueInfoProto()
        if self.is_tensor():
            nvi.name = utils.gen_id(name, 'T')
        else:
            assert self.is_sequence(), self
            nvi.name = utils.gen_id(name, 'S')
        nvi.type.CopyFrom(vi.type)
        return Value(nvi) 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:13,代碼來源:value.py

示例5: to_value_info

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def to_value_info(self, env: 'utils.Env') -> onnx.ValueInfoProto:
        if self.is_py:
            if isinstance(self.value, collections.Iterable):
                return self.to_sequence(env)
            else:
                return self.to_tensor(env)
        return self.value 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:9,代碼來源:value.py

示例6: to_tensor

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def to_tensor(self, env: 'utils.Env',
                  dtype: type = None) -> onnx.ValueInfoProto:
        if self.is_py:
            self.const_value = Value(self.value)
            # TODO(hamaji): Rewrite `totensor` to convert a Python
            # list to a tensor.
            self.value = utils.totensor(self.value, env, dtype=dtype)
            self.is_py = False
        else:
            if self.is_sequence():
                self.value = env.calc('ConcatFromSequence',
                                      inputs=[self.value.name],
                                      axis=0,
                                      new_axis=True)
                self.is_py = False

            if dtype is not None:
                dt = utils.onnx_dtype(dtype)
                self.value = env.calc(
                    'Cast',
                    inputs=[self.value.name],
                    to=dt
                )
                self.value.type.tensor_type.elem_type = dt

        assert self.is_tensor()
        return self.value 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:29,代碼來源:value.py

示例7: to_sequence

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def to_sequence(self, env: 'utils.Env') -> onnx.ValueInfoProto:
        if self.is_py:
            self.const_value = Value(self.value)
            if not isinstance(self.value, collections.Iterable):
                raise TypeError('Expected a sequence: %s' % self.value)
            res = env.calc_seq(
                "SequenceConstruct",
                inputs=[],
            )
            for v in self.value:
                v = Value(v).to_tensor(env)
                res = env.calc_seq(
                    "SequenceInsert",
                    inputs=[res.name, v.name],
                )
            self.value = res
            self.is_py = False
        elif self.is_tensor():
            self.value = env.calc_seq(
                'SplitToSequence',
                inputs=[self.value.name],
                keepdims=False
            )

        assert self.is_sequence()
        return self.value 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:28,代碼來源:value.py

示例8: istensor

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def istensor(x):
    return isinstance(x, onnx.ValueInfoProto) 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:4,代碼來源:utils.py

示例9: eval_ast

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def eval_ast(nast, env):
    for k, v in env.get_var_dict().items():
        assert not isinstance(v, onnx.ValueInfoProto), '%s %s' % (k, v)

    global _eval_ast_depth
    if not isinstance(nast, list):
        dprint('-' * _eval_ast_depth, gast.dump(nast), env.get_var_dict().keys())

    _eval_ast_depth += 1
    r = eval_ast_impl(nast, env)
    _eval_ast_depth -= 1
    return _value(r) 
開發者ID:pfnet-research,項目名稱:chainer-compiler,代碼行數:14,代碼來源:chainer2onnx.py

示例10: _input_from_onnx_input

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _input_from_onnx_input(input):  # type: (ValueInfoProto) -> EdgeInfo
    name = input.name
    type = input.type.tensor_type.elem_type
    shape = tuple([d.dim_value for d in input.type.tensor_type.shape.dim])
    return (name, type, shape) 
開發者ID:onnx,項目名稱:onnx-coreml,代碼行數:7,代碼來源:_graph.py

示例11: _shape_from_onnx_value_info

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _shape_from_onnx_value_info(v):  # type: (ValueInfoProto) -> Sequence[Tuple[int, ...]]
    return tuple([d.dim_value for d in v.type.tensor_type.shape.dim]) 
開發者ID:onnx,項目名稱:onnx-coreml,代碼行數:4,代碼來源:_test_utils.py

示例12: _add_utility_constants

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _add_utility_constants(self):
    util_consts = {CONST_ONE_FP32: np.array([1.0]).astype(np.float32)}
    # Add a few useful utility constants:
    for name, value in util_consts.items():
      self.add_const_explicit(name=name, value=value)
      self.add_const_proto_explicit(
          name=name, value=value, np_dtype=value.dtype)
      self.add_input_proto_explicit(
          name=name, shape=value.shape, np_dtype=value.dtype)

  # This list holds the protobuf objects of type ValueInfoProto
  # representing the input to the converted ONNX graph. 
開發者ID:onnx,項目名稱:onnx-tensorflow,代碼行數:14,代碼來源:pb_wrapper.py

示例13: data_type_cast_map

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def data_type_cast_map(self, data_type_cast_map):
    self._data_type_cast_map = data_type_cast_map

  # This list holds the protobuf objects of type ValueInfoProto
  # representing the all nodes' outputs to the converted ONNX graph. 
開發者ID:onnx,項目名稱:onnx-tensorflow,代碼行數:7,代碼來源:pb_wrapper.py

示例14: _data_type_caster

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _data_type_caster(cls, protos, data_type_cast_map):
    """Cast to a new data type if node name is in data_type_cast_map.
    Be used to process protos to match ONNX type constraints.

    :param protos: Target protos.
      TensorProto for inputs and ValueInfoProto for consts.
    :param data_type_cast_map: A {node.name: new_data_type} dict.
    :return: Processed protos.
    """
    if not data_type_cast_map:
      return protos
    result = []
    for proto in protos:
      new_proto = proto
      if proto.name in data_type_cast_map:
        new_data_type = data_type_cast_map[proto.name]
        if type(proto) == TensorProto and proto.data_type != new_data_type:
          field = mapping.STORAGE_TENSOR_TYPE_TO_FIELD[
              mapping.TENSOR_TYPE_TO_STORAGE_TENSOR_TYPE[proto.data_type]]
          vals = getattr(proto, field)
          new_proto = make_tensor(
              name=proto.name,
              data_type=new_data_type,
              dims=proto.dims,
              vals=vals)
        elif type(
            proto
        ) == ValueInfoProto and proto.type.tensor_type.elem_type != new_data_type:
          new_proto.type.tensor_type.elem_type = new_data_type
      result.append(new_proto)
    return result 
開發者ID:onnx,項目名稱:onnx-tensorflow,代碼行數:33,代碼來源:pb_wrapper.py

示例15: _make_graph

# 需要導入模塊: import onnx [as 別名]
# 或者: from onnx import ValueInfoProto [as 別名]
def _make_graph(self,
                    seed_values,  # type: Sequence[Union[Text, Tuple[Text, TensorProto.DataType, Any]]]
                    nodes,  # type: List[NodeProto]
                    value_info,  # type: List[ValueInfoProto]
                    initializer=None  # type: Optional[Sequence[TensorProto]]
                    ):  # type: (...) -> GraphProto
        if initializer is None:
            initializer = []
        names_in_initializer = set(x.name for x in initializer)
        input_value_infos = []
        # If the starting values are not also initializers,
        # introduce the starting values as the output of reshape,
        # so that the sizes are guaranteed to be unknown
        for seed_value in seed_values:
            if isinstance(seed_value, tuple):
                seed_name = seed_value[0]
                seed_value_info = make_tensor_value_info(*seed_value)
            else:
                seed_name = seed_value
                seed_value_info = make_empty_tensor_value_info(seed_value)

            if seed_name in names_in_initializer:
                input_value_infos.append(seed_value_info)
            else:
                value_info.append(seed_value_info)
                input_value_infos.append(make_tensor_value_info('SEED_' + seed_name, TensorProto.UNDEFINED, ()))
                input_value_infos.append(make_tensor_value_info('UNKNOWN_SHAPE_' + seed_name, TensorProto.UNDEFINED, ()))
                nodes[:0] = [make_node("Reshape", ['SEED_' + seed_name, 'UNKNOWN_SHAPE_' + seed_name], [seed_name])]
        return helper.make_graph(nodes, "test", input_value_infos, [], initializer=initializer, value_info=value_info) 
開發者ID:mlperf,項目名稱:training_results_v0.6,代碼行數:31,代碼來源:shape_inference_test.py


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