nndeploy.device.tensor

Functions

create_numpy_from_tensor(tensor)

create_tensor_from_numpy(np_data[, device])

Classes

Tensor(*args, **kwargs)

nndeploy.device.tensor.create_tensor_from_numpy(np_data, device='cpu')[源代码]
nndeploy.device.tensor.create_numpy_from_tensor(tensor)[源代码]
class nndeploy.device.tensor.Tensor(*args, **kwargs)[源代码]

基类:Tensor

__init__(*args, **kwargs)[源代码]

Tensor构造函数。

参数:
  • name (str, optional) – Tensor的名称。

  • desc (TensorDesc, optional) – Tensor的描述信息,包含数据类型、形状等。

  • buffer (Buffer, optional) – 已存在的Buffer对象,用于直接构造Tensor。

  • device (Device, optional) – 设备对象,指定Tensor所在的设备。

  • data_ptr (void*, optional) – 外部数据指针,用于直接使用已有内存构造Tensor。

  • memory_pool (MemoryPool, optional) – 内存池对象,用于从内存池中分配内存。

  • config (List[int], optional) – 配置参数,用于指定内存对齐等配置。

  • *args – 其他位置参数。

  • **kwargs – 其他关键字参数。

备注

构造函数有以下几种形式: 1. Tensor(name) - 仅指定名称创建空Tensor 2. Tensor(desc, name=””) - 使用TensorDesc创建Tensor 3. Tensor(desc, buffer, name=””) - 使用已有Buffer创建Tensor 4. Tensor(device, desc, name=””, config=[]) - 在指定设备上创建Tensor 5. Tensor(device, desc, data_ptr, name=””, config=[]) - 使用已有内存在设备上创建Tensor 6. Tensor(memory_pool, desc, name=””, config=[]) - 从内存池创建Tensor 7. Tensor(memory_pool, desc, data_ptr, name=””, config=[]) - 使用已有内存从内存池创建Tensor

备注

  • 如果第一个参数是Device对象,它将被转换为_C.device.Device对象。

  • 如果第一个参数是MemoryPool对象,它将被转换为_C.device.MemoryPool对象。

create(*args, **kwargs)[源代码]

创建Tensor。

参数:
  • *args – 传递给父类create函数的位置参数。

  • **kwargs – 传递给父类create函数的关键字参数。

返回:

None

clear()[源代码]

清空Tensor。

返回:

None

allocate(*args, **kwargs)[源代码]

分配Tensor内存。

参数:
  • *args – 传递给父类allocate函数的位置参数。

  • **kwargs – 传递给父类allocate函数的关键字参数。

返回:

None

deallocate()[源代码]

释放Tensor内存。

返回:

None

set(value)[源代码]

设置Tensor的值。

参数:

value – 要设置的值。

返回:

None

reshape(shape)[源代码]

重塑Tensor的形状。

参数:

shape (tuple) – 新的Tensor形状。

返回:

None

just_modify(desc=None, buffer=None, is_external=True)[源代码]

修改Tensor描述符或缓冲区。

参数:
  • desc (TensorDesc, optional) – 新的Tensor描述符。默认为None。

  • buffer (Buffer, optional) – 新的缓冲区。默认为None。

  • is_external (bool, optional) – 缓冲区是否为外部的。默认为True。

返回:

None

抛出:

ValueError – 如果desc和buffer都没有提供。

clone()[源代码]

克隆Tensor。

返回:

克隆的Tensor。

返回类型:

Tensor

copy_to(dst)[源代码]

将Tensor复制到目标Tensor。

参数:

dst (Tensor) – 目标Tensor。

返回:

None

serialize(bin_str: str)[源代码]

序列化Tensor到流。

参数:

stream – 输出流。

返回:

None

deserialize(bin_str: str)[源代码]

从流反序列化Tensor。

参数:

stream – 输入流。

返回:

None

print(stream=None)[源代码]

打印Tensor信息。

参数:

stream – 输出流。默认为None。

返回:

None

is_same_device(tensor)[源代码]

检查Tensor是否在同一设备上。

参数:

tensor (Tensor) – 要比较的Tensor。

返回:

如果Tensor在同一设备上,则为True,否则为False。

返回类型:

bool

is_same_memory_pool(tensor)[源代码]

检查Tensor是否在同一内存池中。

参数:

tensor (Tensor) – 要比较的Tensor。

返回:

如果Tensor在同一内存池中,则为True,否则为False。

返回类型:

bool

is_same_desc(tensor)[源代码]

检查Tensor是否具有相同的描述符。

参数:

tensor (Tensor) – 要比较的Tensor。

返回:

如果Tensor具有相同的描述符,则为True,否则为False。

返回类型:

bool

empty()[源代码]

检查Tensor是否为空。

返回:

如果Tensor为空,则为True,否则为False。

返回类型:

bool

is_continue()[源代码]

检查Tensor数据是否连续。

返回:

如果Tensor数据连续,则为True,否则为False。

返回类型:

bool

is_external_buffer()[源代码]

检查Tensor缓冲区是否为外部的。

返回:

如果Tensor缓冲区为外部的,则为True,否则为False。

返回类型:

bool

get_name()[源代码]

获取Tensor名称。

返回:

Tensor名称。

返回类型:

str

set_name(name)[源代码]

设置Tensor名称。

参数:

name (str) – 新的Tensor名称。

返回:

None

get_desc()[源代码]

获取Tensor描述符。

返回:

Tensor描述符。

返回类型:

TensorDesc

get_data_type()[源代码]

获取Tensor数据类型。

返回:

Tensor数据类型。

返回类型:

DataType

set_data_type(data_type)[源代码]

设置Tensor数据类型。

参数:

data_type (DataType) – 新的Tensor数据类型。

返回:

None

get_data_format()[源代码]

获取Tensor数据格式。

返回:

Tensor数据格式。

返回类型:

DataFormat

set_data_format(data_format)[源代码]

设置Tensor数据格式。

参数:

data_format (DataFormat) – 新的Tensor数据格式。

返回:

None

get_shape()[源代码]

获取Tensor形状。

返回:

Tensor形状。

返回类型:

tuple

get_shape_index(index)[源代码]

获取指定索引处的形状值。

参数:

index (int) – 索引。

返回:

指定索引处的形状值。

返回类型:

int

get_batch()[源代码]

获取Tensor批次大小。

返回:

Tensor批次大小。

返回类型:

int

get_channel()[源代码]

获取Tensor通道数。

返回:

Tensor通道数。

返回类型:

int

get_depth()[源代码]

获取Tensor深度。

返回:

Tensor深度。

返回类型:

int

get_height()[源代码]

获取Tensor高度。

返回:

Tensor高度。

返回类型:

int

get_width()[源代码]

获取Tensor宽度。

返回:

Tensor宽度。

返回类型:

int

get_stride()[源代码]

获取Tensor步长。

返回:

Tensor步长。

返回类型:

tuple

get_stride_index(index)[源代码]

获取指定索引处的步长值。

参数:

index (int) – 索引。

返回:

指定索引处的步长值。

返回类型:

int

get_buffer()[源代码]

获取Tensor缓冲区。

返回:

Tensor缓冲区。

返回类型:

Buffer

get_device_type()[源代码]

获取Tensor设备类型。

返回:

Tensor设备类型。

返回类型:

DeviceType

get_device()[源代码]

获取Tensor设备。

返回:

Tensor设备。

返回类型:

Device

get_memory_pool()[源代码]

获取Tensor内存池。

返回:

Tensor内存池。

返回类型:

MemoryPool

is_memory_pool()[源代码]

检查Tensor是否来自内存池。

返回:

如果Tensor来自内存池,则为True,否则为False。

返回类型:

bool

get_buffer_desc()[源代码]

获取Tensor缓冲区描述符。

返回:

Tensor缓冲区描述符。

返回类型:

BufferDesc

get_size()[源代码]

获取Tensor大小。

返回:

Tensor大小。

返回类型:

int

get_size_vector()[源代码]

获取Tensor大小向量。

返回:

Tensor大小向量。

返回类型:

list

get_real_size()[源代码]

获取Tensor实际大小。

返回:

Tensor实际大小。

返回类型:

int

get_real_size_vector()[源代码]

获取Tensor实际大小向量。

返回:

Tensor实际大小向量。

返回类型:

list

get_config()[源代码]

获取Tensor配置。

返回:

Tensor配置。

返回类型:

list

get_data()[源代码]

获取Tensor数据指针。

返回:

Tensor数据指针。

返回类型:

int

get_memory_type()[源代码]

获取Tensor内存类型。

返回:

Tensor内存类型。

返回类型:

MemoryType

add_ref()[源代码]

增加Tensor引用计数。

返回:

None

sub_ref()[源代码]

减少Tensor引用计数。

返回:

None

to_numpy()[源代码]

将Tensor转换为numpy数组。

返回:

numpy数组。

返回类型:

numpy.ndarray

to(device_type)[源代码]

将Tensor移动到指定设备。

参数:

device_type (DeviceType) – 目标设备类型。

返回:

移动后的Tensor。

返回类型:

Tensor

static from_numpy(array, device_type=<nndeploy.base.common.DeviceType object>)[源代码]

从numpy数组创建Tensor。

参数:
返回:

创建的Tensor。

返回类型:

Tensor

property shape