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中

copy_from(src_tensor)[源代码]

从src_tensor 拷贝内存

参数

src_tensor – 拷贝来源tensor

property device_id

获取tensor 设备ID

property device_type

获取tensor 设备类型

fill_zero()[源代码]

对tesnor buffer内存填0

get_ctypes_memory()[源代码]

获取tensor 内存,返回tensor的内存c_void_p指针

get_data_by_share()[源代码]
获取tensor 数据并共享到新的numpy 数组

返回对应numpy 数组

注解

注意numpy数组的数据只在tensor 内存再次写入前有效

如 LiteNetwok再次推理之前

property is_continue

tensor 内存是否连续

property is_pinned_host

tensor是否为页锁定内存tensor

property layout
property nbytes

获取内存字节数

reshape(shape)[源代码]

变化tensor 形状不改动数据内容

参数

shape – 目标形状

set_data_by_copy(data, data_length=0, layout=None)[源代码]

拷贝数据到tensor中

参数
  • data – 待拷贝到tensor的数据,可以是list, numpy.ndarray 或者带长度的buffer

  • data_length – 数据字节数

  • layout – 数据内存布局

set_data_by_share(data, length=0, layout=None)[源代码]

共享数据到指定tensor

参数

data – 待共享的数据,可以是numpy.ndarray 或者 C buffer

share_memory_with(src_tensor)[源代码]
同``src_tensor``共享内存,自身的内存将被释放

freed

参数

src_tensor – 待与当前tensor共享内存的tensor

slice(start, end, step=None)[源代码]

用指定起始位置和步长切分tensor

参数
  • start – 各个维度切分起始索引

  • end – 各维度终止索引

  • step – 各维度切分步长

to_numpy()[源代码]

获取tensor buffer

update()[源代码]

更新来自C 接口的内存,在slice和share等操作后自动调用

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