tensor

onnx_ir.tensor(value, dtype=None, name=None, doc_string=None)

从 ArrayLike 对象或 TensorProto 创建张量值。

dtype 必须与值匹配。不支持对值进行重新解释,除非该值是纯 Python 对象,在这种情况下,它会转换为具有给定 dtype 的 numpy 数组。

value 可以是 numpy 数组、纯 Python 对象或 TensorProto。

警告

对于 4 位 dtype,值必须是未打包的。使用 PackedTensor 创建一个包含打包数据的张量。

示例

>>> import onnx_ir as ir
>>> import numpy as np
>>> import ml_dtypes
>>> import onnx
>>> ir.tensor(np.array([1, 2, 3], dtype=np.int16))
Tensor<INT16,[3]>(array([1, 2, 3], dtype=int16), name=None)
>>> ir.tensor([1, 2, 3], dtype=ir.DataType.BFLOAT16)
Tensor<BFLOAT16,[3]>(array([1, 2, 3], dtype=bfloat16), name=None)
>>> tp_tensor = ir.tensor(onnx.helper.make_tensor("tensor", onnx.TensorProto.FLOAT, dims=[], vals=[0.5]))
>>> tp_tensor.numpy()
array(0.5, dtype=float32)
>>> import torch
>>> ir.tensor(torch.tensor([1.0, 2.0]), name="torch_tensor")
TorchTensor<FLOAT,[2]>(tensor([1., 2.]), name='torch_tensor')
参数:
  • value (npt.ArrayLike | onnx.TensorProto | ir.DLPackCompatible | ir.ArrayCompatible) – 用于创建张量的 numpy 数组。

  • dtype (ir.DataType | None) – 张量的数据类型。

  • name (str | None) – 张量的名称。

  • doc_string (str | None) – 张量的文档字符串。

返回:

一个张量值。

引发:

ValueError – 如果 value 不是纯 Python 对象(如 list[int]),且 dtype 与 value 不匹配。

返回类型:

_protocols.TensorProtocol