张量

class onnx_graphsurgeon.Tensor

基类: object

图中张量的抽象基类

此类是抽象类,不能直接构造。

is_empty()

返回此张量是否在图中被视为空。

注意:这里的“空”指的是张量的名称,对于可选张量,名称会被省略,而不是张量的形状

返回::

张量是否为空,意味着它用于省略的可选输入或输出。

返回类型:

布尔值

to_constant(values: ndarray, data_location: int = None, export_dtype: dtype | onnx.TensorProto.DataType = None)

修改此张量,将其就地转换为常量。这意味着张量的所有消费者/生产者都将看到更新。

参数::
  • values (np.ndarray) – 此张量中的值

  • data_location (int) – 一个枚举值,指示张量数据存储的位置。通常,这将来自 onnx.TensorProto.DataLocation。

  • dtype (Union[numpy.dtype, onnx.TensorProto.DataType]) – 张量的数据类型。

返回::

self

to_variable(dtype: dtype | onnx.TensorProto.DataType = None, shape: Sequence[int | str] = [])

修改此张量,将其就地转换为变量。这意味着张量的所有消费者/生产者都将看到更新。

参数::
  • dtype (Union[numpy.dtype, onnx.TensorProto.DataType]) – 张量的数据类型。

  • shape (Sequence[int]) – 张量的形状。

返回::

self

i(tensor_idx=0, producer_idx=0)

便捷函数,用于获取此张量的输入节点之一的输入张量。请注意,与 o() 函数相比,参数已交换;这是因为张量可能只有一个生产者

例如

assert tensor.i() == tensor.inputs[0].inputs[0]
assert tensor.i(1, 2) == tensor.inputs[2].inputs[1]
参数::
  • tensor_idx (int) – 输入节点的输入张量的索引。默认为 0。

  • producer_idx (int) – 输入张量的生产者节点的索引(如果张量有多个生产者)。默认为 0。

返回::

指定的生产者(输入)张量。

返回类型:

张量

o(consumer_idx=0, tensor_idx=0)

便捷函数,用于获取此张量的输出节点之一的输出张量。

例如

assert tensor.o() == tensor.outputs[0].outputs[0]
assert tensor.o(2, 1) == tensor.outputs[2].outputs[1]
参数::
  • consumer_idx (int) – 输入张量的消费者的索引。默认为 0。

  • tensor_idx (int) – 节点的输出张量的索引(如果节点有多个输出)。默认为 0。

返回::

指定的消费者(输出)张量

返回类型:

张量