megenginelite.tensor¶
- class LiteTensor(layout=None, device_type=LiteDeviceType.LITE_CPU, device_id=0, is_pinned_host=False, shapes=None, dtype=None, physic_construct=True)[源代码]¶
带有必要信息的数据块描述
- 参数
layout – tensor 内存布局
device_type – tensor 设备类型
device_id – tensor 设备ID
is_pinned_host – 设置该选项后,存储内存会被设置为页锁定内存,可以用于H2D和D2H内存拷贝的优化,若从其他如CUDA设备上拷回的tensor没有设置layout和shape时,默认设为页锁定内存
shapes – 数据形状
dtype – 数据类型
注解
数据形状维度少于8,当前支持的数据类型定义在LiteDataType中
- property device_id¶
获取tensor 设备ID
- property device_type¶
获取tensor 设备类型
- 获取tensor 数据并共享到新的numpy 数组
返回对应numpy 数组
注解
- 注意numpy数组的数据只在tensor 内存再次写入前有效
如 LiteNetwok再次推理之前
- property is_continue¶
tensor 内存是否连续
- property is_pinned_host¶
tensor是否为页锁定内存tensor
- property layout¶
- property nbytes¶
获取内存字节数
- set_data_by_copy(data, data_length=0, layout=None)[源代码]¶
拷贝数据到tensor中
- 参数
data – 待拷贝到tensor的数据,可以是list, numpy.ndarray 或者带长度的buffer
data_length – 数据字节数
layout – 数据内存布局
共享数据到指定tensor
- 参数
data – 待共享的数据,可以是numpy.ndarray 或者 C buffer
- 同``src_tensor``共享内存,自身的内存将被释放
freed
- 参数
src_tensor – 待与当前tensor共享内存的tensor
- class LiteLayout(shape=None, dtype=None)[源代码]¶
- Lite中数据内存布局的完整定义
数据内存布局将由形状和数据类型完全决定
- 参数
shape – 数据形状
dtype – 数据类型
注解
数据形状维度少于8,当前支持的数据类型定义在LiteDataType中
实际案例
import numpy as np layout = LiteLayout([1, 4, 8, 8], LiteDataType.LITE_FLOAT) assert(layout.shape()) == [1, 4, 8, 8] assert(layout.dtype()) == LiteDataType.LITE_FLOAT
- data_type¶
Structure/Union 成员
- property dtype¶
- ndim¶
Structure/Union 成员
- property shapes¶