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#