nndeploy.device¶
- class nndeploy.device.BufferDesc(*args, **kwargs)[源代码]¶
基类:
BufferDesc- __init__(*args, **kwargs)[源代码]¶
Constructs a BufferDesc object.
The constructor can be called in the following ways: 1. BufferDesc(): Constructs an empty BufferDesc. 2. BufferDesc(size): Constructs a BufferDesc with size. 3. BufferDesc(size_ptr, size): Constructs a BufferDesc from a size_t array of size. 4. BufferDesc(size_vector): Constructs a BufferDesc from a base::SizeVector. 5. BufferDesc(size, int_vector): Constructs a BufferDesc from a size and a base::IntVector. 6. BufferDesc(size_vector, int_vector): Constructs a BufferDesc from a base::SizeVector and a base::IntVector. 7. BufferDesc(size_ptr, size, int_vector): Constructs a BufferDesc from a size_t array of size and a base::IntVector.
- is_same_config(self: nndeploy._nndeploy_internal.device.BufferDesc, arg0: nndeploy._nndeploy_internal.device.BufferDesc) bool[源代码]¶
- is_same_dim(self: nndeploy._nndeploy_internal.device.BufferDesc, arg0: nndeploy._nndeploy_internal.device.BufferDesc) bool[源代码]¶
- just_modify(*args, **kwargs)[源代码]¶
Overloaded function.
just_modify(self: nndeploy._nndeploy_internal.device.BufferDesc, arg0: int) -> bool
just_modify(self: nndeploy._nndeploy_internal.device.BufferDesc, arg0: list[int]) -> bool
just_modify(self: nndeploy._nndeploy_internal.device.BufferDesc, arg0: nndeploy._nndeploy_internal.device.BufferDesc) -> bool
- class nndeploy.device.TensorDesc(*args, **kwargs)[源代码]¶
基类:
TensorDesc- __init__(*args, **kwargs)[源代码]¶
Constructs a TensorDesc object.
The constructor can be called in the following ways: 1. TensorDesc(): Constructs an empty TensorDesc object. 2. TensorDesc(data_type, format, shape): Constructs a TensorDesc object from data type, data format and shape. 3. TensorDesc(data_type, format, shape, stride): Constructs a TensorDesc object from data type, data format, shape and stride. 4. TensorDesc(desc): Constructs a new TensorDesc object from another TensorDesc object.
- property data_type¶
- property data_format¶
- property data_format_¶
- property data_type_¶
- deserialize(self: nndeploy._nndeploy_internal.device.TensorDesc, arg0: str) nndeploy._nndeploy_internal.base.Status¶
- serialize(self: nndeploy._nndeploy_internal.device.TensorDesc, arg0: str) nndeploy._nndeploy_internal.base.Status¶
- property shape¶
- property shape_¶
- property stride_¶
- property stride¶
- class nndeploy.device.Architecture(*args, **kwargs)[源代码]¶
基类:
object- __init__(*args, **kwargs)[源代码]¶
Constructs an Architecture object.
The constructor can be called in the following ways: 1. str: Constructs an Architecture from a string. eg: “cpu”, “ascendcl”, etc. 2. DeviceTypeCode: Constructs an Architecture from a DeviceTypeCode enum value. 3. _C.base.DeviceTypeCode: Constructs an Architecture from a DeviceTypeCode enum value.
- class nndeploy.device.Device(*args, **kwargs)[源代码]¶
基类:
object- __init__(*args, **kwargs)[源代码]¶
Constructs a Device object.
The constructor can be called in the following ways: 1. Device(device_name_and_id): Constructs a Device from a string in the format “device_name:device_id” (e.g., “cuda:0”). 2. Device(device_name, device_id): Constructs a Device from a string device name and an integer device ID. 3. Device(device_type_code): Constructs a Device from a DeviceTypeCode enum value. The device ID defaults to 0. 4. Device(device_type_code, device_id): Constructs a Device from a DeviceTypeCode enum value and an integer device ID. 5. Device(): Constructs a default Device with DeviceTypeCode.cpu and device ID 0.
- allocate(size_or_desc)[源代码]¶
Allocate memory that must be freed using deallocate() :param size_or_desc: int for allocation size, or BufferDesc for buffer descriptor
- 返回:
Memory pointer that must be freed using deallocate()
- class nndeploy.device.MemoryPool(*args, **kwargs)[源代码]¶
基类:
object- __init__(*args, **kwargs)[源代码]¶
MemoryPool构造函数。
- 参数:
device (Device) – 设备对象。
memory_pool_type (MemoryPoolType) – 内存池类型。
memory_pool (_C.device.MemoryPool) – 内部内存池对象。
- allocate(desc: BufferDesc)[源代码]¶
- allocate_pinned(desc: BufferDesc)[源代码]¶
- class nndeploy.device.Buffer(*args, **kwargs)[源代码]¶
基类:
Buffer- __init__(*args, **kwargs)[源代码]¶
Overloaded function.
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, size: int) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, desc: nndeploy._nndeploy_internal.device.BufferDesc) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, size: int, ptr: capsule) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, desc: nndeploy._nndeploy_internal.device.BufferDesc, ptr: capsule) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, size: int, ptr: capsule, memory_type: nndeploy._nndeploy_internal.base.MemoryType) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, device: nndeploy._nndeploy_internal.device.Device, desc: nndeploy._nndeploy_internal.device.BufferDesc, ptr: capsule, memory_type: nndeploy._nndeploy_internal.base.MemoryType) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, memory_pool: nndeploy._nndeploy_internal.device.MemoryPool, size: int) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, memory_pool: nndeploy._nndeploy_internal.device.MemoryPool, desc: nndeploy._nndeploy_internal.device.BufferDesc) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, memory_pool: nndeploy._nndeploy_internal.device.MemoryPool, size: int, ptr: capsule, memory_type: nndeploy._nndeploy_internal.base.MemoryType) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, memory_pool: nndeploy._nndeploy_internal.device.MemoryPool, desc: nndeploy._nndeploy_internal.device.BufferDesc, ptr: capsule, memory_type: nndeploy._nndeploy_internal.base.MemoryType) -> None
__init__(self: nndeploy._nndeploy_internal.device.Buffer, buffer: nndeploy._nndeploy_internal.device.Buffer) -> None
- to_numpy(*args, **kwargs)[源代码]¶
Convert the buffer to numpy array 支持两种调用方式: 1. to_numpy(dtype) - 直接传入dtype对象 2. to_numpy(dtype_obj) - 传入可转换为dtype的对象
- to_numpy_v0(self: nndeploy._nndeploy_internal.device.Buffer, dtype: numpy.dtype) numpy.ndarray¶
Convert buffer to numpy array with specified dtype
- to_numpy_v1(self: nndeploy._nndeploy_internal.device.Buffer, dtype: object) numpy.ndarray¶
Convert buffer to numpy array with dtype object
- class nndeploy.device.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
- allocate(*args, **kwargs)[源代码]¶
分配Tensor内存。
- 参数:
*args – 传递给父类allocate函数的位置参数。
**kwargs – 传递给父类allocate函数的关键字参数。
- 返回:
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都没有提供。
- set_data_format(data_format)[源代码]¶
设置Tensor数据格式。
- 参数:
data_format (DataFormat) – 新的Tensor数据格式。
- 返回:
None
- to(device_type)[源代码]¶
将Tensor移动到指定设备。
- 参数:
device_type (DeviceType) – 目标设备类型。
- 返回:
移动后的Tensor。
- 返回类型:
- static from_numpy(array, device_type=<nndeploy.base.common.DeviceType object>)[源代码]¶
从numpy数组创建Tensor。
- 参数:
array (numpy.ndarray) – numpy数组。
device_type (DeviceType) – 目标设备类型。
- 返回:
创建的Tensor。
- 返回类型:
- property shape¶
Modules